Skip to main content

Full text of "Commodore Computer Club 27"

See other formats



T re sistemi per farle 
e per disfarle 


Il joystick senza misteri 


Mensile - £5 gennaio 1986 - Anno V N 27 • Sped. Abh. Post. Gr 111/70 - Cft - Dtstr MePe 



Due giochi di strategia 







PRESENTA 








RUBRICHE 


Grafica 

Figure geometriche 
Ricrosività e merletti in basic 



OOMANDE/RISPOSTE 

12 1 RIGA 

SPECIALE 

PROTEZIONI 

RECENSIONI 

95 ANNUNCI 


In classe 


21 

Tempo dì saldi 

■ 

■ 

• 

* 


23 

La merce più economica 

• 

« 

* 

* 



L'Utile 






26 

Protezione antilìsl 

* 

* 

* 

Hi 


2B 

Protezione turbo software 


* 




75 

Enciclopedia di routine 

* 

* 

• 

* 



Oltre II basic 






31 

Autostart 64 


* 





Didattica 






42 

Uoa stellina passo dopo passo 


• 




45 

Impariamo a sbagliare 

• 

• 

• 

• 


57 

La vìrgola è mobile 

* 

* 


* 


70 

Utilizzo del joystick nel 064 e C 1 6 


* 

* 


— 


Simulazione 

61 Un cannone neu troni co • * 


Giochi 

Attacco aereo 

Pressi inamente sui vostri schermi 


JHrvtìura: AJessaftdns cto sanane 

Rtdutom/ctillibDriitDfi: Giovanni Be&ùi, Sto» Botola. Anufrea « AUeoj Ssnenl, 
Gia-Tcario Cassarla, Euoef Uo Coppan r Mauria» ttair Assale. Marco De Martino, I. ucs Sadutsi 
Stancarlo Manali. "Flfswkj Molrran. Enne» Scetsau D Mattumn M l tatti. Massimo Palli. 
Massimo Pcfluirt. Carla Rampi, Fa tuo Sonato Giovanni Veroni, Antonio Viscunii 
3#gr«t>r1i di radutane: Maura Cwre'-ni' ^rm 
untata Grafito; Mary BeiWiuto, Arturo Claglia. Paolo Verty«x> 

Dirtrton», f^utan** pubbticttfc V.to Fsm&poeia. 7$ - 201*2 Milano M og/BiicnJFi 
Pubblicità; Milano; Mitìheto Prendimi. Gbtg« Rutto™ Rtìteno Sgnirinzattf. 

Claudio ridane j Sogrptaria. Ultala Owpxgi 

m Rema Spazio Nuove - via P. Fbscari 70- K?i 3 S Roma ■ Tel. oe/SlQSGTt 

Abbonamenti: Manna Vantimi 

Tariffa; ipmzzo per oppia L 3 000 Abtwnamgnio annua (n fascicoli) L 2a oOO. Estero; il Nipote 
AbbonamRnia cunu'aitvo elle riviste Ctamputor e Commodoro Computar Clun L. 55 0® 
l versamemii vanno rr^rusteti a Systema Editoriale Sri molane mo&gro bancone, 
o utiftEZanda »1 cJc postata n 372522Q7 
C(HrpoeiEti>nh Systems Editorata SU 
Fotolito; Edtonaite Sri 

Stampa La Ltogttflcti Sri. - Busto Arsrrto (VA| 

»: Tribù nata di Milano n. STO del 2/11 


ribunata di Milano n. 370 del 2/1 0/62 - Dottora Rmporwsixrto Mietete [> Pisa 


HtflslrazkKH 

OEt. OT 

Dlatrib uxtane: MetPa, v..i G Carco™ 32 Milano 


Spdd m ùbb posi, gr HI - Pubblicità intonane a! 70% 

Olstrll 




La protezione del software 



Perchè non parlate 
mai di come si fa a 
proteggere un 
programma oppure 
di come eliminare la 
protezione da quelli 
normalmente 
commercia lizzati ? 
(numerosi lettori) 


Xll miriamo sutiiio ncM'argomcnl» suddivj- 
dondoli) Eli parsi cnjij che rappresentane*, eia 
so urtn, unii risposta alle domande più cornimi 
che sono pervenuto, numerose, negli ni rimi 
rompi. 


I computer dedicali 


solo e ben determinato compito. Si pensi a] 
sistemi di video frittura a doperai] nelle rc- 
d:i/si mi dei giornali o ni calcolatori in grado ili 
svolgere compili particolarissimi come i enn- 
l rolli di processo nelle produzioni in sene di 
manufatti di vario tipo. 

i progi animi capaci di farii funzionare risie- 
dono spesso su ROM e il software ivi residen- 
te (denominato, più propriamente, 
I IRMWARR) ss rivela utile e funzionale solo 
se utilizzato insieme con la arcuile ria del tro- 
nfila "di contorno” di cui Fa parte Se i proget- 
tisti lo desiderano, £ sufficiente., in questi casi. 


Per fare in modo che un particolare pro- 
gram ari a min venga sfruttato co turno retai mer- 
le da altri, esistono in commercio vere c- pro- 
prie "si azioni di lavoro" caput i di svolgere un 







utilizare un monitor che non seguo particola- 
ri specifiche o coìtegare una tastiera a una 
stampa me diversa da quella fornita dalla ditta 
che realizza il sistema per renderlo totalmente 
inefficiente In casi come quegli duplicare i 
programmi residenti su ROM non sene asso* 
luta mente ni nulla se l’elet ironica di contorno 
non è esattamente come previsto. 

Riferendosi al campo dell'utenza domesti- 
ca, le vecchie consolle di videogiochi, che ri- 
chiedevano cartucce ROM per funzionare, 
erano suffìeien temente protette dal fenome 
no della riproduzione indesiderata di pro- 
grammi perchè, non essendo previsto il cari- 
camento da supporto magnetico, l’unico mo- 
do di duplicare un programma era quello di 
copiarlo ancora su ROM. I costi totali, però, 
risultavano tali che il prezzo finale alfutemc 
sarebbe stato di poco diverso da quello ^uffi- 
ciale" proposto dalla Casa madre 

Al contrario, la notevole diffusione di com- 
puter dotati di memoria RAM. in cui è possi- 
bile caricare, cancellare, duplicare, modifica- 
re e creare un qualsiasi programma, ha di 
fatto reso obsolete le consolle dedicate ti fun- 
zionami soltanto cort programmi su cartuccia 
ROM 

II sistema delle tastiere dedicate, opportu- 
namente riveduto e corretto, potrebbe, a pen- 
sarci bene, costituire una valida barriera alla 
pirateria. Un esempio per tutti può essere 
rappresentato dal Commodore Flm-4 che, 
contenendo al suo interno ben quattro pro- 
grammi di uso universale, rende di fatto com- 
pletamente autonomo il calcolatore e non ri- 
chiede l'acquisto di altri package di 
programmi. 

Assisteremo forse alla produzione di una 
tastiera che funziona solo ite (polente) word- 
processor, un'altra da spreadsheet e cosi via? 
La mode rna tecnologia, con i circuiti integrati 
customizzatL può infinti offrire altissima qua- 
lità a prezzi stracciati Una tastiera dedicata 
solo al word -processor, che sia venduta alme- 
no in un milione di esemplari, potrebbe veni- 
re a costare forse meno dd solo discheito- 
programma di word-processor posto in vendi- 
ta per un sistema compiile rizzato MS/DOS! 


La protezione personale 

Come fare per impcdsrechc nessuno, all'rn- 
fuori di noi stessi, possa utilizzare un certo 
programma frutto di laboriose fatiche? 

Questo tipo di protezione è te più semplice 
da applicare, perchè solo l'autore del pro- 
gra mon conosce n za d e i co m p t i i c he svolge 
il programma stesso, 

D’ora in poi ci riferiremo, negli esempi cita- 
ti, a listati brevissimi e facilmente comprensi- 
bili anche dn principianti. E' ovvio che nessu- 
no si sognerebbe di proteggere programmi 
còbi banali e quanto diremo sarà utile esclusi- 
vamente perseguire il discorso. 

Supponiamo, dunque, che t[ programma in 
oggetto sia in grado di calcolare la media arit- 
metica di 10 numeri da digitare in successio- 
ne. Una sua versione può essere, ira té tante, 
la seguente: 


100 PRINT "CALCOLO DELLA MEDIA " 
110 X— 0: FQR I = ITO 10 
HO PRlNTirNUMERO"; 

130 INPUT Y; X=X+Y 
140 NEXT 

150 FRINITALA MEDIA E"' 

160 PRIMI X/ll) 

Una persona non autorizzata che si impos- 
sesstìsse di una copia del programma non 
avrebbe difficoltà, dopo qualche minuto tra- 
scorso alla tastiera, a comprenderne l'uso, 

Se però cancelliamo le righe 100. 120 c L50, 
che si riferiscono alla pane ,L in te ratti va" (cioè 
di dialogo tra calco fai ore ed utilizzatore), l'e- 
ventuale intruso dovrebbe far far girare più 
volle il programma prima di capire a che cosa 
realmente serve. 

Un altro modo di confondere le acque è 
quello di scrivere un programma in modo tale 
che non sin la riga a numerazione più bassa 
quella che deve esser elaborata per prima, 
Scrivete il programma di prima come segue: 

100 NEXT: GOTO 160 
110 X=0;FGR It”TO10 
130 INPUT Y: X-X+Y 
140 GOTO 100 
150 PRINT X/10 

Se provate a landa re il programma col con- 
sueto KUN, non ottenete altro che un mes- 
saggio; NEXT WITHOUT POR ERROR IN 
100 , 

It programma, infarti, per funzionare cor- 
rettamente. necessita del comando: 

RUM no 

E' ovvio che è possibile scrivere il program- 
ma in modo che te prima riga ad essere elabo- 
rata sia qualsiasi c tale da essere conosciuta 
solo dal l'autore del programma. 

I più cattivi possono, addirittura, inserire 
nella prima riga BASIC un comando come: 
9(1 SYS 6473H 

che. come è noto, provoca il restìi del sistema 
nd Commodore 64, 

Questo esaminato è il sistema più sicuro 
che esista e non c'è verso che persone non 
autorizzate possano usare proficuamente un 
vostro listato. Può essere molto efficace nei 
casi in cui molti utenti si servano dello stesso 
computer centrale cui è possibile accedere via 
terminate- Nd modo descrìtto* e soprattutto 
ricorrendo d linguaggio macchina (L.M) 
piuttosto che al BASIC, è possibile fare in 
modo che solo voi possiate utilizzare un cerio 
programma, perchè solo voi sapete non solo a 
che serve ma anche come farlo partire. 

Purtroppo questo è anche il sistema.,, più 
stupido, perchè per protezione eh Software 
non si intende Fusa "esclusivo" del program- 
ma, ma te possibilità che, una voi tu ceduto ad 
altri, non venga riprodotto e venduto a terzi 
■^eriza la vohM a autorizzazione. 

E ‘ fin troppo ovvio che se vendete un listato 
non potete evitare di dire come funziona nè 
tantomeno... che compito t in grado di 
svolgere! 

La protezione del “sorgente” 

Volendo impedire, al Futi lizzato re del prò 
grani ma. di ìmpossessessarsi dì una particolà- 


re tecnica di programmazione adottata (alberi 
binari, soluzione di sistemi di equazioni parti- 
colarmente veloce, ordinamento di un vetto- 
re, ricerca di un elemento di un uridiivio, 
eccetera) è necessario utilizzare un linguàggio 
poco conosciuto. 

Al giorno d + oggi molte sono le persone che 
conoscono piuttosto bene il BASIC, ma sono 
in numero modesto gli esperii di linguaggio 
macchina. Assembler (strettamente legato al 
L.M.), Pascal ed altri linguaggi o pseudo 
linguaggi. Chi ne è capace, in tal caro, può 
scrivere il programma direttamente in L.M, e 
limitarsi a comunicare al diente soltanto l'e- 
satto indirizzo della SYS di partenza. 

Chi non è in grado di scrivere un program- 
ma in L.M. può ugualmente fornire all'inili/- 
zaiore una versione compiteti del programma 
BASIC originale che risulta aìtret tanto “illeg- 
gìbile’' di un listato in LM. Che cosa sia un 
eompilaiore lo vedremo tra breve. 

Un programma scritto in L.M., o compila- 
lo, impedisce a chi lo utilizza di impadronirsi 
di una particolare tecnica di programmazione 
(pensate alla generazione degli incredibili ef- 
fetti sonori o, addirittura, alla riproduzione di 
parole sintetizzate), ma non impedisce la du- 
plicazione del programma stesso. Moltissimi 
appassionati dì home computer, infatti, pos- 
seggono versioni copiate di fantastici video- 
giochi e, infischiandosene di sapere come 
"funzionano", si limitano solo a giocare! 

La protezione apportata dal codice macchi- 
na non risolve, nemmeno in questo caso, la 
piaga della pirateria sodare, 

Le protezione ant icopia 

E. finalmente, affraliamo il problema nel- 
l'aspetto più interessarne e richiesto, 

£' possibile proteggere validamente un 
programma da copie non autorizzate? Ln ri- 
sposte non può essere che laconica: no nel 
modo più assoluto f 

IL motivo è piuttosto semplice, dato che cè 
un codice, l'unico problema ó scoprirlo. 1:' 
come una serratura: è sufficiente avere la 
chiave per accedere a Tappar! amento. 

Se un commerciarne disonesto vende serra 
Iure di cui conserva copia della chiave oppure 
antifurti elettronici di cui annota la combina- 
zione, può cedere l una o l'altra a scassinatori 
con cui t in combutta perche la "protezione" 
sia inefficace. 

L'amara vicenda del Bancomat (che ha 
consentito di contraffare tessere magn eliche 
che abilitavano al prelievo elettronico di de- 
naro negli appositi sportelli automatici) dimo- 
stra che non è assolutamente possibile preve 
nife con certezza azioni illegali o f comunque, 
indesiderate. 

L’unico modo per scoraggiare la pirateria 
software, a mio avviso, è saio quello di segui- 
re uniEi seria polìtica commerciate che impedi- 
sca di fatto* con un prezzo oltremodo conte- 
nuto. te duplicazione dei programmi. 

Un listato che, per il Commodore 64, viene 
posto in vendite a tramontila lire (cifra qua- 
si eguale al computer su cui gira) rappresenta, 
praticamente, una fcfidà aperta: gii sprotelto- 
ri. acquistata una copia '‘regolare'', elimina- 
no la protezione per puro e semplice diverti - 


Commodore Computer Ciub - o 



mento, sostenuti, alta fine, dalla soddisfazio 
ne di aver sprotetto fe divulgato, magari gra- 
tuitamente) un programma che, al pubblico, 
costa una cifra consistente . 

Se lo stesso programma fosse venduto a 
ventimila lire* in confezione elegante* con 
dettagliate e chiare istruzioni in italiano, mol- 
to probabilmente non subirebbe il fenomeno 
della duplicazione incontrollata, proprio per- 
chè. tra supporto magnetico e fotocopie del 
manuale, l'impresa non varrebbe la spesa, 


Le protezioni più diffuse 

Per evitare una copia indesiderata si ricorre 
■quasi sempre a particolari procedi nienti che, 
una volta caricato il programma, to fanno im- 
mediatamente partire. Contemporaneamen- 
te viene inibita la funzione dei tasti Run/stop 
e Resto re c non è possibile arrestare reseca- 
rione del programma o effettuarne ta copia. 

II problema, a questo punto, si presenta di- 
stinto a seconda se il programma protetto sta 
su cassetta oppure su disco. 

Nel primo caso, il programma può essere 
duplicato nella maniera più semplice che esi- 
sta. Ricorrendo ad uno dei duplicatori, la cui 
pubblicità appare spesso su Commodore 
Computer Club, è possibile riprodurre qual 
siasi nastro, sia esso redatto in BASICO com- 
pilato, scritto in L.M r oppure registralo col 
Tu rbo Tape, 

Quegli apparecch ietti diabolici, infatti, non 
fanno altro che prelevare parte del segnale 
elettronico durante la fase di lettura e trasfe- 
rirlo, semplicemente, su un secondo registra- 
tore (originale oppure no) predisposto per la 
registrazione. Alla fine dd l'operazione* nd 
secondo registratore sarà presente una copia 
perfettamente identica alTorigìnale, prote- 
zioni. trucchi e truechetti compresi! 

E’ pertanto inutile dedicare tempo per indi- 
viduare una protezione da applicare a pro- 
grammi su nastro, 

L'uso del drive per dischetti, invece, con- 
sente protezioni più efficaci, [I motivo risiede 
nel fatto che è possibile alterare » in parte, il 
sistema operativo del drive stesso generando, 
ad esempio, volontari errori di lettura che 
impediscono, di fatto, una copia de! disco in 
tutto o in parte. 

Tentando dì effettuare un Back-Up (copia 
intera del disco) il drive copiatore cade ineso- 
rabilmente in errore e non porta a termine 
l’operazione, Oppure sembra che l’operazio- 
ne sia avvenuta regolarmente ma. tentando di 
utilizzare U dtscocopia, il programma non 
"parte”. 

Approfondire il discorso sulle tecniche di 
protezione su disco non fa parte degli scopi 
del presente articolo che si ripromette, al con- 
trario. di dare solo alcuni consigli su come 
proteggere il proprio software e, per di più T 
solo in casi particolari, 

I ragionamenti che seguiranno, infarti, par- 
tono dal presupposto che non è assolutamen- 
te possibile, nè con la tecnologia attuale nè 
con quella futura, generare un sistema di pro- 
iezione efficace!!! 


Nei vico dei discorso 

Vediamo, dunque, di chiarire in quali casi ì 
possibile applicare una qualche protezione al 
software. 

Escludiamo» a priori, la possibilità di usare 
un registratore» dato che il numero di utenti 
Commodore che posseggono un duplicato re è 
piuttosto elevato. 

Riferiamoci, pertanto, solo a sistemi che 
utilizzano ili drive. 

Dobbiamo, tre l’altro» escludere o limitare 
software di larghissima diffusione (videogio- 
chi) ed il perchè lo capirete tra breve. 

Potrà proteggere il proprio software, forse 
anche per vie legali, solo chi si dedica a sten- 
dere programmi professionali "su misura '. 

I consigli che seguiranno, in parte applicali 
personalmente con un certo successo e in par- 
te noti per "sentito dire", non sono altro che 
un invito ai lettori a proporre qualcosa di 
analogo che abbia una considerevole possibi- 
lità di creare una "protezione”. 

E 1 infatti inutile (e ipocrita) descrivere in 
dettaglio una certa tecnica perchè, una volta 
pubblicato un articolo su come utilizzarla, au- 
tomaticamente. tra le righe, viene suggerito il 
modo di ^proteggere, Sarebbe come pubbli- 
cane il codice segreto per entrare m contatto 
con ta banca dati della NASA, 


La continuità dell 'assistenza 

Un modo di evitare la copiatura dei pro- 
grammi è quello di privilegiare committenze 
di programmi che richiedono frequenti 
aggiornamenti. 

Un programma di contabilità che debba 
tener conto di nuove leggi» decreti* nuove 
tabelle ed altro» offre di certo più garanzie di 
un programma “universale” come un word- 
processor (o videogioco)* che non richiede 
“manutenzione” di alcun tipo. 

Non appena sì vara una legge che impone 
variazioni, il cliente è tnev labilmente costret- 
to a chiamarvi per le opportune modifiche al 
programma da voi fornito in precedenza. In 
questi casi, che possono esser più frequenti di 
quanto si pensi, ri cliente scorretto difficil- 
mente passerà tutte le volte la nuova versione 
ad estranei e questi* in molti casi, desisteran- 
no dal richiedere ogni volta l'aggiornamento. 

Considerando* tuttavia* questi casi un mo- 
do per scoraggiare ta duplicazione è quello di 
inserire in ogni schermata Limerò nominativo 
della Ditta cliente c così in ogni copia di qual- 
siasi output su stampante. 

In questo caso* infatti, se i] titolare della 
ditta Rossi cede sottobanco una copia del vo- 
stro programma alla ditta Bianchi* die figura 
farà questo titolare con ta propria segretaria e 
con la propria clientela? Immaginate ta figu- 
raccia che è costretto a fare nel consegnare ai 
propri elicmi output di stampante su cui figo 
ra, cancellato» il nominativo delta ditta Rossi 
coperto, a malapena, dal timbro delta ditta 
Bianchi! 

E' probabile, inoltre, che ta ditta Bianchi si 
rivolgerebbe direttamente a voi* .se sapesse 
chi è il vero autore del programma. Per “co- 


prire" questa eventualità ogni tanto fate m 
modo che sui video compaia it vostro nomina- 
tivo, con tanto di numero di telefono. 

Si potrebbe obiettare che. in un program- 
ma del genere, è sufficiente scorrere il listato 
in modo da rintracciare sia il primo che il 
secondo "trucco" descritti e cancellare o alte- 
rare le linee BASIC che contengono le istru- 
zioni di,,, scoraggiamento. 

Quello che infatti non vi abbiamo ancora 
detto è che il programma deve* in ogni caso, 
esser compilato. 


Che cosa è un compilatore 

Un compilatore è un particolare program- 
ma che si incarica dì leggere un qualsiasi pro- 
gramma scritto in BASIC e dL^tradurlo" in 
una versione molto vicina al Linguaggio Mac- 
china. Il vantaggio di tale procedimento risie- 
de nel fatto che ta velocità dì esecuzione di- 
venta decisamente più elevata. 

Un programma compilatore, di cui esistono 
diverse versioni (solo su disco)» richiede una 
procedura semplicissima. 

Supponiamo che vogliate compilare un 
programma BASIC che, ovviamente, avete 
verificato più volte e non contiene errori di 
sorta. Questo programma lo registrate (e ve- 
rificate ) sullo stesso disco che contiene il com- 
pilatore. Quest'ultimo, caricato e "lanciato", 
chiede solo il nome del programma che inten- 
dete compilare. Dopo aver digitato il nome 
esatto del file- programma, il compilatore si 
mette al lavoro che termina in un tempo pro- 
porzionale alla lunghezza del programma 
stesso e che non è mai inferiore ai cinque 
minuti. Alla fine di tulle le operazioni, sul 
disco è presente un file-programma (con un 
nome secondo lo standard specificato sul li- 
bretto di i st razioni) eh e va caricato (LO A D ) e 
lanciato (RUM) come un qualsiasi program- 
ma BASIC ma che sembra composto da un’u- 
nica istruzione: SYS. 

II programma compilato, benché sia stato 
generato su disco* pub essere registrato su 
nastro magnetico e sottoposto a tutte le ope- 
razioni Cui normalmente sottoponete un qual- 
siasi programma BASIC ad eccezione della 
modifica, cancellazione o aggiunta di nuove 
istruzioni. 


I primi “trucchi” 

I! vantaggio di consegnare al diente una 
copia compilata del programma fa si che lo 
stesso listato sia tllegibile. almeno da una per- 
sona non molto esperta, e* di conseguenza, 
non modificabile: tutte le intestazioni, scritte* 
videate* nomi eccetera verranno riportati su 
video o su stampante senza alcuna possibilità 
di modifica. 

Un altro “trucco" per evitare la duplicazio- 
ne indesiderata del programma è quello di 
garantire un certo servizio, magari gratuito, 
di nordino degli archivi eventualmente gene- 
rati dal programma. 

Nelle varie opzioni del package, ad esem- 


6 - GomrTìodore Computer Cfub 



pio* fate m modo che. dopo Tinse ri mente di 
un certo numero dt nominai ivi, sm necessario 
un riordino degli stessi, altrimenti, con l'au- 
mentare delle dimensioni dello stesso archi- 
vio. la ricerca di un dato avviene dopo un 
tempo sempre più lungo. Si potrebbe, ovvia- 
mente, inserire □ IV in temo dello stesso pro- 
gramma un’opiiioné che permetta il rinrdinò 
automatico tutte le volte che se ne presenta la 
necessità; ma. in questo modo, chiunque po- 
trebbe compiere l'operazione, anche chi pos- 
siede una copia di "favore" del listato, 

Strutturando il programma, invece, in mo- 
do che m richieda il vostro intervento almeno 
set volte l'anno, vi garantirete da copie abusi- 
ve Dal vostro cliente vi presenterete (ripeto: 
gratuitamente) con un particolare program- 
ma, che non cederete per nessun motivo, che 
si incarica di "mettere a posto ” i file generati 
dal programma, E‘ ovvio che chi ne possiede 
una copia illegate non potrà giusti bea re la 
richiesta di un vostro in terremo? 


Un altro trucco, sperimentato personal- 
mente con successo, consiste nel "legare” il 
programma con i file che genera Con la scusa 
di illustrare all'impiegato (che utilizzerà il 
computer) t modi di funzionamento, passate 
un intero pomeriggio (ne vale la pena) e se- 
guitelo almeno nel Tinse rimerito ds un centi 
naio di nominativi. In seguito fate in modo, 
senza che se ne accorga, che il programma 
funzioni correttamente solo se sul disco sono 
presenti, ad esempio, tre nominativi prima 
digitali c che, ripetuti in una parte, inaccessi- 
bile dall operatore e dal programma, fungano 
da "chiave” per riconoscere se il programma 
£ usato da persone autorizzate oppure no. 

Il programma, in altre parole, funziona str- 
io se in presenza dcH archivio (già iniziato) 
de! diente. Una copia del programma funzio- 
nerebbe solo se si fornisse anche l'archivio 
che ha generato (l ru cui i tre nominativi ''chia- 
ve”). Non può esser commercializzato un 


programma che funziona con un archivio 
riempito in parie 1 

Se l'utente richiede l'opzione di canee datu- 
ra di nominativi, voi realizzerete una partico- 
lare opzione che si limiterà a non considerare 
ulteriormente il nominativo indicato. Questo, 
invece, resterà fSSteamcnic sul disco anche se 
non più accessibile da programma li vostro 
intere vento periodico consentirà, in un secon- 
do momento, di cancellare realmente i nomi 
nativi indesiderati grazie al solito programma 
Top Secrer da utilizzare in casi come questi 

Sul prossimo numero, oltre a riprendere A 
discorso, parleremo di àEiri tmccheiti che 
hanno consentito, a numerosi programmato- 
ri, di prò legge re il frutto dei proprio lavoro, 
Ci farà piacere riportare, come abbiamo già 
detto all'inizio, l'esperienza dei lettori che ab- 
biano affrontato e risolto bri Iten te mente (o 
meno!)!’ a n o i ist y pr< >b lem i^. 

Alessandro dv Si mone 


Mancanza di compatibilita 

□ Ho notato thè alcuni programmi regi' 
strali sa nastro adatti per il VK’ 2ÉL pur 
non avendo PEEK o POKE, non possono 
essere caricati su C64. C T è qualche modo 
per eseguire questa operazione ? (Rosa- 
rio Melilli - Chleri) 

* Come abbiamo più volte detto, vi so- 
no notevoli differenze tra la struttura 
della memoria del V1C 20 e del C64. Può 
accadere che alcuni programmi senili 
per VIC 21! possano essere caricati su 
C64, ma per farlo occorre prima salvarli 
svi disco e da quest” ultimo caricarli su 
C64, Occorre però sottolineare che solo i 
più semplici programmi BASIC possono 
girare su ambedue i calcolatori, non cer- 
to complessi programmi scritti in Lin- 
guaggio Macchina 


Super Turbe 

□ So no ri uscito ad otte nere un program- 
ma chiamato “SUPER TURBO" che gi- 
ra sui Commodore 64. Poiché io posseggo 
un PLUS 4. ho caricato il programma su 
quest' ultimo* ma non c'è alcun modo di 
Tarlo funzionare. Potete darmi qualche 
suggerimento ? (Pietro Ciuccio - S Mar- 
gherita Relice (AG)) 

* I calcolatori Commodore 64 e PLUS 4 
sono piuttosto diversi fra loro e difficil- 
mente un programma scritto per il primo 
può girare anche sul secando. Ciò non 
accade, di norma, quando il programma 
è molto semplice e scritto in BASIC. 
Non è questo, purtroppo, il caso del 
'SUPER TURBO ”, programma in lin- 
guaggio macchina (L.M.) che funziona 
egregiamente su C64, ma non sul PLUS 4 


(oppure Ciò) proprio a causa de Ila diffe- 
rente struttura dei due calcolatori. 


CtÓ 

PLLIS4, CI6 
e caratteri dì schermo 

IT Quando collego il min PLI S4 al televi- 
sore* 1 caratteri dei bordi escono dallo 
schermo. Come fare per ovviare a questo 
inconveniente 7 (Massimo Falcione - Vì- 
ho Marina) 

• 1 cara Iteri dello schermo del PI US4 e 
del C iò sono visualizzati ricorrendo ad 
una dimensione più ampia di quelli dei 
C64. Può cosi succedereche nei televiso- 
re domestico i caraiteri del bordo escano 


Commodore Computer duo - 7 


dai limiti dello schermo visibile. Chi pos- 
siede un monitor non ha, fortunatamen- 
te, questo problema. 

Per ovviare al G neon ve niente descrit- 
to. occorre premere il tasto “ESC" e la 
lettera l 'R ': in tal modo il numero di 
colonne delio schermo si riduce da 40 a 
38, e tutti i caratteri risultano così visibili. 
Il calcolatore, in pratica, crea, ricorren- 
do al sistema descritto, una finestra grafi- 
ca sullo schermo, 

E' doveroso ricordare, però, che se un 
programma è slato scritto in modo da 
sfruttare lo schermo ne! forma to di 4(1x25 
caratteri, funzionerà mate se si ricorre 
alla tecnica descritta. 

Programmi per Ciò e PLUS4 

□ Posseggo un calcolatore PLUS4 e pos- 
so facilmente procurarmi programmi per 
il C16. F7 vero che i due calcolatori sono 
completamente compatibili tra loro? 

(Manuele Cecconello - Gaghanìco (VC)) 

» Il C16 ed il PLUS 4 hanno una struttu- 
ra della memoria interna ed un sistema 
operativo molto simili fra loro. Non biso- 


gna dimenticare, però, clic il PLUS4 ha 
una zona delle memorie volatili (RAM) 
molto più estesa del Ciò, anche se si 
inseriscono, su quest’ultimo, espansioni 
di memoria, E quindi sempre possibile 
far girare sul PI.US4 programmi scritti 
per Ciò, ma non sempre si verifica il 
viceversa proprio perchè, in alcuni casi, 
sì fa ricorso a tecniche di programmazio- 
ne valide solo nel modello PLUS4. 

Monitor del CI6 

L_! Mi interesserebbe molto leggere i pro- 
grammi in Linguaggio Macchina (L.M*l 
Imm aguzzi nati nel mìo Ciò, ma non so 
come fare. Mi potete aiutare ? (Riccardo 
de Flora - Tomo) 

• AirintemodclClò, come nel PLUS4* 
è presente un programma "monitor" che 
permette di disasse rubiate e operare su 
tutti i programmi in linguaggio macchina 
allocati in memoria. Per metterlo in fun- 
zione occorre impartire, appunto, il co- 
mando MONITOR, Da quel momento 
si “entra" in L,M. e vi hanno a disposi- 


dotte parecchi comandi per lavorare in 
linguaggio macchina o Assembler, Ad 
esempio, per disassemblare un program- 
ma. cioè in pratica per leggerlo secondo 
il linguaggio della MOS Technology, è 
sufficiente il comando “D" seguito dal- 
l'Indir izzo di partenza da esaminare. Per 
tornare al BASIC, si digita “X” c il tasto 
Return, 

L’intero set di comandi disponibili è 
stato pubblicato, purtroppo, solo sul ma- 
nuale di istruzioni del PLEJS4, La nostra 
rivista, per venire incontro alle esigenze 
dei Clósti. ha riportato sut N.22 (luglio 
agosto H S5) un articolo intitolalo, appun- 
to, “Le istruzioni del Monitor 06 e 
PLUS4T 


I lettori che desiderano por- 
re questi questi! sono pre- 
gati di compilare esclusiva- 
mente la scheda relativa 
pubblicata in fondo alla 
rivista. 



Molti lettori chiedono spesso informa- 
zioni su come ottenere i fascicoli arretrati 
della Systems Editoriale. 

I j ct ciò che riguarda la nostra rivista 
KTC.C.) precisiamo che i numeri 1 e 2 
sono esauriti ed t pertanto inutile richie- 
derli. Altri numeri (3, 4. 7, 10) sono in 
via di esaurimento ed è opportuno, in 
caso di richiesta, precisare altri numeri 
nel caso in cui non risultino disponibili al 
momento de ITordi nazione. 

Un numero arretralo costa L.StKJO 
(compresa la spedizione), Nel caso desi- 
deriate ordinare quattro (o più) arretra- 
ti, conteggiateli per la cifra di 41 XK) tire 
cadauno. 

IT altresì possibile richiedere, su na- 
stro, i programmi pubblicati su Commo- 
dore Computer Club a partire dal N. 12. 
Ogni nastro* che contiene tutti i listati 


pubblicati (ad eccezione di ì rigai, viene 
venduto al prezzo di L. ?????( ). 

Anche in questo casti, per ordinazioni 
superiori a N, 4 nastri, applicate uno 
sconto di L, 1000 per ciascun nastro 
desideralo. 

Tn nessun caso, quindi, è necessario 
addebitare le spese dì spedizione alle 
quali provvede l’Ufficio Arretrati. 

[N NESSUN CASO SARANNO 
EFFETTUATE SPEDIZIONI IN 
CONTRASSEGNO!!! 

Per le ordinazioni, inviare in busta 
chiusa racconta rida La un assegno con 
l'importo esatto insieme con urta breve 
lettera di accompagnamento indicando 
CHIARAMENTE il vostro nome, co- 
gnome. e indirizzo completo di codice 
postale. 


indirizzate a: 

SYSTEMS EDITORIALE 
Servizio arretrali 
Commodore Computer Club 
Viale Famagosta. 75 
20142 MILANO 

In alternativa* utilizzate un normale 
modulo di conto corrente postale inte- 
stato a: 

C/C 37952207 
SYSTEMS EDI TORIALE 
Viale Famagostn. 75 
21)142 MILANO 

Non dimenticale, in quest'ultimo ca- 
sti, di segnare sul retro del modulo di 
corno corrente (nello spazio indicato con 
la dicitura: CAUSALE DEL VERSA- 
MENTO) via le vostre richieste che il 
vostro nominativo completo. 


& - Commodore Computer Club 




Le immagini di questo fascicolo 







3 


1>LW 


m 




Ci****** 






R iceviamo molto spesso lettere che ci implorano di pubblicare titoli di libri validi per approfondire questo o quell’ argomento. 

Molti lettori- infatti- dopo aver preso solenni fregature nell’acquisiare volumi; che promettevano mari e monti (ma mantenevano 
laghetti e colline) si sono fatti più prudenti e chiedono maggiori informazioni prima di effettuare altri acquisti. 

La Systems Editoriale, esaminando con la massima attenzione le schede informative inviate in gran quantità dai suoi lettori, sì 
presenta sul mercato con un certo numero di testate idonee a soddisfare Se più disparate (e disperate) esigenze. In questo fascicolo di 
Commodore Computer Club le proponiamo soprattutto ai nuovi acquirenti, preoccupandoci, in particolare, di evidenziare a grandi 
linee le caratteristiche più salienti di ciascuna publicarione. 

Chi fosse Interessato a procurarsi arretrati, oppure a sottoscrìvere abbonamenti cumulativi, è pregato di telefonare alla Systems 
Editoriale (Milano ) chiedendo dell 1 ufficio abbonamenti e arretrati: 02/846734S. 























2$ 

. . t •• - J . l pf - •■ * : 1 1. . • *^z * m y- 1 J 


di T c 0 ' 0 
' FU N2ri 0l y ( r 


TVfMf 


rL T opt 


Df 


^ROq 


W ft! 5 «? 


Ren ff ^AL 


/L OL 


POTER 


Personal Computer è la nuova rivista Systems per gli utenti Commodore, MSX, 
Sinclair 

Dal mese di gennaio in edicola. 128 pagine a sole 3000 lire: allo stesso prezzo, la vostra 
rivista, integra e migliorata, e molto dì più. 

Non solo tre riviste per tre diversi utenti: Personal Computer è anche unMdea nuova 
per far comunicare tutti gli hobbisti. 

Personal Computer: 128 Kbytesdi rivista, tutti i mesi in edicola. 



// mercato si evolve. 
Anche noi. 





vii 


‘ • » -- v r*. m 

* v' t'/ì TO, 

PPs^ajSS--*.* - 
'•iS?sfe. &* * i *•'' - 

\t- * 

r- . < , » y»* - i • _: : 

• "i ■* •."•v * . #13§ * 3»i 1 

tf '’.ri •••• *-V *-•/ *§5 !i J 5j-, _' 


/ 






/ 

M 



I mieto programmi di questa 
puntata sono dedicati in gran 
parte f ben 14 Una riga ) agli 
utenti del CTS e P!us4. Negli 
ultimi tempi, infatti, sono giunte 
lamentele perla (presunta) 
mancanza di attenzione, da 
parte nostra, verso questa 
categoria “minoritaria" 

I listati privi di indicazioni 
particolari possono girare, 
come di consueto, su qualsiasi 
Commodore. Autore de- micro 
programmi di questo fascicolo 
è Michele Maggi possessore, 
beato lui, oltre che di un Pius4, 
anche di un Commodore 04 
due disk drive 1541, 
stampante MPS 303. ptotter 
1 52Q e datatisene *530 e 










iiv* V'v*? 








# 1 


#5 


#9 


Radice e potenze (per qualsiasi Commo- 
dore), Dato un numero, viene calcola 
la relativa radice quadrala, il quadrato e 
il cubo. 

1 PRIMTCHPSa?^: IN 
PUT "NUJ1ERQ ,r ■ A ■ P 
FINTSOPCAÌ : PPINT 
AT2 : PR I NTAT3 : GDI 
□ 1 


#2 


Rettangoli C 16. Un disegno geometrico 
che viene crealo con utilizzando il co- 
mando BOX. 

1 GRAPPICI T l; 
FDRI-1TQ130STEP3; 

BOXI, 80+1, I +50 , £00-1,1 ; 
NEXT: GETKEYfì$; 

GRAPHICS 


#3 


Consumi carburanti (per qualsiasi Com- 
modore). Una utilissima una riga per te- 
nere sotto controllo i consumi 
automobilistici. 

1 INPUT "LITRI CON 
SUMATI " ; L : INPUT 
"KM PERCORSI ” ; KM 
: PR INT "XM/L” " ; KH 
,'L : PRINT : RUN 


#4 


A rea/ peri metro (per qualsiasi Commo- 
dore), Chieste le misure dei due iati di un 
rettangolo, ne calcola l*area e il 
perimetro. 

1 INPUT "BASE, ALTE 
Z. RETTANGOLA ;E f H 
: PR INT "AREA" ; E+H 
: PR I NT "PERIMETRO 
”;E*B+H+E: BOTO 1 


Cerchi Citi. Un in te ressa me applicazio- 
ne del comando CIRCLE per capire co- 
me funziona, 

1 GRAPHICS l; 

F0RI-PT03CSTEP3; 
CIRCLEX, I ,1+10, I t I: 
NEXT : GETKEYAS ; 
GRAPHICS 


#6 


Valore CHR$ (per qualsiasi Commodo- 
re). Viene chiesto un numero (compreso 
tra tl e 255) di cui viene poi visualizzato il 
corrispondente CHR$. 

1 INPUT "DIGITA IL 
UALORE DEL CHR$ 

C: PR I NTCHRSKC 2 
; GOTO 1 


#7 


FRI NT musicale CI 6. Ogni volta che vie- 
ne premuto un tasto, oltre alla sua visua- 
lizzazione sul video, si scntiril un breve 
impulso sonoro. 

1 UOL0 : GETKEYAS : 

50UNDS , 500 t 3 : 

PRINTAS i : GQTD1 ; 


#8 


Ciambella C16, Una ciambella in Aita 
Risoluzione che viene disegnata median- 
te il comando BOX, 

1 GRAPHIC1 , 1: 

FORI *110100 STEF4; 
BOXI , 100,80,330, 100,1 : 
NEXT: GETKEYA3: 
GRAPHICS 


Schermo randnm C16 h Una schermata di 
caratteri casuali che si ripete senza fine 

1 5CNCLR: 

FQRA-3072TCH071 : 
POKEA, C RND C 1 ? *355? + 1; 
NEXT: DOTO! 


#10 


Random music 06. Una musichetta ca- 
suale creata dal C16. 


1 UOLBI 

A=1NT(RN0C1>* 10003+1: 
SOUNDB, A, 7: BOTOl: 


#11 


Cambia n* drive (per qualsiasi Commo- 
dore e 1541). Serve per portare da 8 a 9ÌI 
numero di device del dn ve 1541. Tutto in 
una riga solai 

I OPEN 1,0,15, "10” 

: PPINTttl t ”N-W ,r ; C 
HRSCllS? ; CHP5C0) 
;CHPSra) ; CHR3C41 
3 ì CHRSC 73) : CLDSE 
1 


#12 


Codici ASCII (per qualsiasi Commodo- 
re). Ogni volta che viene premuto un 
tasto viene visualizzato il valore ASCII 
corrispondente. 

1 INPUT "PREni UN 
TASTO CE IL TASI 
G RETURN 1 'N A$ : PP 
INT SJ A5CII 
ASCTC A$ > : GOTO 1 


Commodore Computer Club - 13 



# 13 


Bandoni music II 06. Un’altra musi- 
chetta in cui È casuale la frequenza musi- 
cate e la sua durata. 

1 UDLB : 

B“INTCRNDC 13*303+1 : 
A-INTCENDC 1 >*1000 3 + 1 : 
SOLI NOE, A, E: G0T01 

#14 


Tasti musicali 06, Ogni volta che viene 
premuto un tasto si udirà un suono in 
lun/ione del codice ASCII del tasto 
premuto, 

1 UOLB : GETKEYAS : 

BQUWOE , A5CCA$)*3 t 3 : 
PRINTAS- : 0DTO1 ; 


# 15 


Diapason 06. Onesta una riga genera 
una nota "LA" utile per accordare stru- 
menti a corda fes. chitarra). 

1 UQLB : 

S0UND2, 516 * 60: 
F[]RI-!TD2000: 

NEXT : GOTO! : 


#16 


Vortice 06. Un impressionante vortice 
generato dal vostro C- 16 con l'istruzione 
BOX- 

1 GRAPH 1C1 , 1>: 

F0RA-2TO17B5TEF2 : 
BOXI t C 160-A3 , C 100-A3 
, C160+A3 , C100+A3 , A : 
NEXT : BETKEYAS : GRAPHI 

co : 


#17 


PEEK musicali 06. Questa una riga 
chiede il numero di una locazione di me- 
moria traducendone poi il contenuto in 
una nota musicale. 

1 UOL0 : 

INPUT "LOCAZIONE ; L : 
SGUND2 , PEEK(L) , 5 ; 
PRINT“PEEK C J, L " D * ”PE 
EK CL3 : 

GETKEYAS ; GGTOl 


#18 


TakeofT C16. Un effetto sonoro che può 
essere facilmente utilizzato nei vìdeogio- 
chi di vostra creazione. 


1 UDLS : 

POP I “0TO9S3STEP5 ; 
SD LINDI ,1,1: NEXT: 
FOEI-BSaTCIpSTEF-S : 
SGUND1 ,1,1: NEXT; 
G 0 TD 1 


#19 


Telefono occupato 06 . Una simpatica 
riga che genera il segnale telefonico di 
occupato. 

1 UQL0 : 

90UMBS, 765,7 : 
fqrt-itores r 

NEXT: GOTO I 


#20 


Colori schermo C 16 . Mostra, per ciascun 
colore generabile dal C-ló, ciascuna del- 
le sette gradazioni, 

1 SCNCLR: 

FDRI«1TD1E : 
F0HA-1T07; 

COLGE0 , I , A : 

C0L0R4 , I ,A: 
FQRT-1TQE00 : 

NEXTT , A t I 


Nota Bene 

Alcune righe tra quelle pubblicate sembrano possedere più di 80 caratteri e, come tali, inaccettabili dal computer 

Nei casi in cui ci si accorga che la riga è troppo lunga, è necessario ricorrere alle abbreviazioni dei comandi cosi come indicato 
nell appendice specifica riportata nel manuale del computer in vostro possesso 
Ad esempio invece di scrivere FRI NT è possibile abbreviare col punto interrogativo (7) invece di POKE potete scrivere il 
carattere P 1 seguito dal carattere che viene visualizzato premendo contemporaneamente il tasto shift insieme con ,l O" Tutte le 
abbreviazioni possibili, lo ripetiamo, sono riportate in una delle appendici di qualsiasi manuale Commodore 
Nel caso sbagliate a digitare i microlistati che superano, in lunghezza, gli ottanta caratteri ESYNTAX ERROR o altri Espi di 
errore), è necessario, per sicurezza, ribatterli per intero e non apportare modifiche alla riga visualizzata con l'istruzione LIST 


La partecipazione del lettori è gradita e compensata, in caso di pubblicazione, con materiate della 
Systems editoriale (libri, fascicoli arretrati, abbonamenti, eccetera). 

Inviate le vostre 1 RIGA, purché nella misura di almeno dieci per volta. Non ci è infatti possibile 
raggruppare i (moltissimi) m le ro- programmi che pervengono singolarmente in Redazione. 

Inviate i vostri lavori su carta, (meglio se su nastro) corredati, ciascuno, di una breve spiegazione sulla 
funzione che compiono, proprio come il vedete pubblicati in queste pagine. 

Ricordate di indicare chiaramente nome, cognome, via e città, e indirizzate a: 

Commodore Computer Club Viale Famagosta, 75 

SYSTEMS EDITORIALE Rubrìca “1 Riga" 20142 MILANO 


14 - Vorrìfnodore Computer Club 





COMPUTERTELEFONA 



EPSON SECI S.p.ft- 

30)24 Milane ■ Via limavo, 12 ■ Tfel. Oa-É>705136 7-S-9-0 
40121 Bologna - Via Pietrame 'tara, 6S AVB - Tal, OBI '273686 
,35120 Padova - Via Palliato, 23/0 mi. 4 f\} - Te). 0*9 @070870 
[00199 Roma - Via Asm^ra, 58 - Tel. O&-039S766 


CX-21 EPSON è un accessorio che dà un valore enorme al tuo calcolato- 
re, quello dei terminali telecomunicazione. 

CX-21 è un modem costruito con le tecnologie più avanzate , (modulato- 
re - demodulatore) capace di convertire i segnali digitali in suoni che pos- 
sono essere trasmessi con un normale telefono, in tutta sicurezza. 


“telefonare" i programmi direttamente al computer dei tuoi amici che pos 
seggono un CX>21 

comunicare con personal computer di altre marche 

collegarti con le banche dati di tutto il mondo è 


per consentire lo scambio veloce e facile di programmi e dati 
CX-21 è costruito con speciali circuiti integrati CMOS, è pic- 
colo, leggero e molto affidabile. 


Caratteristiche 


- Funzionamento a batterie ncaricabiii 
(4 ore di autonomia) 

- Funzionamento duplex o half duplex 

- Velocità di trasmissione fino a 300 bit-sec. 

- Interfaccia RS 232 

- Dimensioni 291x95x42 min 

- Peso 700 gr. 

Inoltre CX-21 può essere collegato a qualsiasi ham& o 
personal computer tramite interfaccia RS £32 ■ C, 


EPSON CX-21, 
il tuo computer in un 
mondo senza confini 


Accoppiatore acustico 







Anno nuovo Systems nuova 


Le novità che vedrete fin 
dall'inizio dell’anno e che, 
magari, conoscete già. 


A 


IjL vele sicuramente saputo che Com- 
modore Computer Club (la rivista che 
hai in mano, tanto per intenderci) è da 
tempo suggerita ai suoi clienti dalla stes- 
sa Commodore. Lei dimostra la cedola di 
abbonamento speciale che potete trova- 
re nelle confezioni Commodore regolar- 
mente distribuite dalla Commodore Ita- 
liana Anzi, se nella confezione che state 
per comprare non e presente la cedola- 
sconto T come pure il certificato di garan- 
zia Commodore Italia, potete esser sicuri 
che la merce proviene dal mercato “pa- 
rando" e non può godere dell’assistenza 
ufficiale. 

Perchè è stata, tra le tante (ma tante 
davvero) scelta la nostra rivista? Loro 
dicono che il motivo è da ricercarsi nel 
numero di copie vendute (il più alto per 
una rivista che tratta esclusivamente ar- 
gomenti specifici di una marca di compu- 
ter) e nella serietà e semplicità dell'impo- 
stazione degli articoli. 

Noi diciamo, invece, che la Commo- 
dore produce apparecchi sufficiente- 
mente idonei per supportare il sofware 
che pubblichiamo. O no? 

Scherzi a parte, ri fatto che C.C.C sia 
indicata, dalla stessa Casa, come fonte 
privilegiata di notizie Commodore, qual- 
cosa significa e. forse, anche qualcosa in 
più. 


11 prezzo di copertina 

Avrete, ahimè, notato che sono neces- 
sarie 500 lire in più per procurarsi una 
copia della nostra rivista. Non faremo il 
patetico, tradizionale paragone col prez- 
zo di una tazzina di caffè o con le sigaret- 
te, Ci limiteremo a far notare che il corrL 
spenderne aumento di pagine è tale da 
mantenere i! rapporto quantità prezzo 
costante, l*a qualità, invece, tende al 
rialzo, 

Il motivo dell'aumento del numero di 


pagine: il numero di lettori che richiedo- 
no specifici argomenti è sensibilmente 
aumentato. D’altra parte eravamo co- 
stretti a non trattare temi che, da soli, 
richiedevano uno spazio eccessivo e non 
giustificavano la loro presenza in un fa- 
scicolo di ‘‘sole" M pagine. Gli utenti di 
C-16 e PLUS-4, inoltre, scalpitavano e 
non si accontentavano di articoli che ri- 
guardavano " anche" la loro macchina, 
ma richiedevano specifiche trattazioni. 


La nuova rivista: “Personal Computer" 1 

E' ormai in edicola la nuova creatura 
della Systems Editoriale, Personal Com- 
puter, che si rivolge agli utenti d* Com- 
modore, Sinclair. MSX. Per quanto ri- 
guarda gli utenti Commodore, la nuova 
rivista tratterà argomenti un po' più 
avanzati rispetto agli articoli che potete 
trovare su C.C.C. Soprattutto, parlerà di 
quei “legami' \ apparentemente impossi- 
bili, tra le diverse macchine che rappre- 
sentano, almeno per ora. la maggior fet- 
ta di mercato nel campo degli Small 
Computer. 

Saranno presentati listati di un certo 
interesse e. soprattutto, si offrirà ai letto- 
ri volenterosi la po&sihiiità di coltabora- 
re. Se, infatti, saranno pubblicate versio- 
ni di listati per un solo determinato com- 
puter, i lettori che adatteranno il pro- 
gramma ad altri calcolatori potranno in- 
viare la loro versione in modo che gli 
utilizzatori di apparecchi identici ne pos- 
sano usufruire. 

Particolari tecniche di programmazio- 
ne, come pure istruzioni Basic tipiche di 
una sola macchina e non riscontrabili 
nelle altre, saranno anche argomenti 
trattati dalla nuova rivista Personal Com- 
puter che insegnerà, nei limiti del pimi- 

j 

bile, ad ottenere gli stessi effetti su mac- 
chine completamente diverse tra loro. 

Protezione dei programmi 

Da questo numero di C.C.C, approfit- 
tando dello speciale ''Protezione del 
software", viene inaugurata una nuova 
"Sezione" completamente dedicata ai- 


ri n le re ssant e argomento. Per stimolare i 
lettori ad approfondire le proprie cogni- 
zioni e colEaborare con C.C.C., la Re- 
dazione promuove due iniziative 
speciali. 


Scopri il trucco 

Commodore Computer Club e Soft- 
ware Club (la rivista su cassetta della 
Systems Editoriale) uniscono le toro for- 
ze per un nuovo, avventuroso concorso. 
Per partecipare, hasta acquistare un nu- 
mero di Software Club, ogni mese in edi- 
cola. e mettersi af Lavoro sul programma 
che viene presentato protetto (ogni volta 
con una tecnica diversa). 

ÀI lettore che per primo invierà un 
breve articolo che ili usi ri il metodo ado- 
perato dalla Redazione per proteggere 
quel particolare listato, verrà inviato un 
pacco contenente prodotti della Systems 
Editoriale. 

Si noti che è necessario inviare il meto- 
do usalo per proteggere e non quello 
seguito dal lettore per eliminare la prote- 
zione, Siamo infarti sempre contrari a 
divulgare notizie che possano ind Merla- 
rne nte danneggiare Fattività delle 
Software House. 


Proteggi i program mi con C*C.C- 

Saranno esaminati e, se meritevoli, 
pubblicati articoli f brevi, per carità) dì 
lettori che descrìvano routine di prote- 
zione (e non di sprotezione). Anche, e 
soprattutto, semplici idee che necessita- 
no studi più approfonditi saranno prese 
in considerazione e pubblicate. 

Per collaborare è necessario inviare il 
materiale, corredato soprattutto del vo- 
stro recapito telefonico, a: 

Coiti inodore Computer Club 

Systems Editoriale 
Rubrica “Protezione del Soft- 
ware” 

Viale Famagosta, 75 
20142 MILANO 


16 ■ Commodore Computer Club 



GRAFICA 

COMMODORE 64 C- 128 

(Solo con le routùies grafiche di Danilo Toma) 

Figure geometriche 

di Riccardo Sciavi 



danno una buona idea delle capacità gra- 
fiche del Commodore 64 in alta risoluzio- 
ne (il termine “bires” che incontrerete 
tielFarticolo non ha nulla si strano: ò ta 
contrazione dell'inglese high-resolutìon, 
aha risoluzione). Per la sua semplicità 
non ci sembra il caso di commentare il 
programma: è costituito da un menu di 
otto opzioni e da altrettanti sottopro- 
grammi incaricati di tracciare i grafici, 

A proposito di queste subroulines, no- 
tate l'assenza di istruzioni del tipo GO- 
TO e GOSUR al loro interno, per cui i 
più pigri nel Putì lizza re i programmi po- 
tranno copiare solo le linee contenenti il 
d t segno des i d erato , 

Sappiate che i disegni iniziano con le 
linee multiple di 1000 (1000, 2000, 3WXJ 
ecc,) e terminano con f istruzione RE- 
TURN t che dovrete sostituire con STOP 
se volete utilizzare le routines separata- 
mente dal programma. 

Attenzione che se rullimi* istruzione è 
STOP il vostro “cerve! Ione" resta irt mo- 
do hires e dovete essere voi a riposarlo 
in modo "'normale ’ (tmodo testo) in uno 
dei modi seguenti: 


Con questi 
disegni il C-64 non 
eguaglia Raffaello , 
ma si difende bene! 


- Premete RU N/STOP + RESTORE. 

- Digitate alla “"cieca” (senza che, cioè 
possiate vedere ciò che state digitando) il 
comando TEXT6J (preceduto dal ca- 
rattere di freccia sinistra) seguito dalla 
pressione del tasto Return, 

- Premete un tasto alfabetico seguito da 
Return. generando però un 7SYNTAX 
E RROR che riporta, tuttavia, il compu- 
ter in modo normale, 

- Premete SHIFr +CLRfHOME c digi- 
tate, sempre alla “cieca", tl comando 
LIST seguito da Return. Quando il pro- 
gramma è listato tutto il calcolatore ritor- 
na al modo normale. 

« 

- Digitate il carattere di doppio punto f:) 
seguito dalla pressione del solilo tasto 
Retum. 

Detto questo, lascio la parola alle im- 
magini (e alla tastiera su cui dovrete bat- 
tere prima il programma). Non dimenti- 
cate, prima di digitarlo, di caricare ed 
attivare le routine grafiche di Danilo 
Toma, 



Come procurarsi 
le routine grafiche 

I nuovi lettori di Commodore Computer 
Club forse non sono a conoscenza del 
fatto che la nostra rivista ha pubblicato 
lampo fa (esattamente sul N.14) un pro- 
gramma in linguaggio macchina che ag- 
giunge nuove, potenti istruzioni basic al 
C-64, 

Queste routine, esclusivamente grafi- 
che, consentono di disegnare in Ire di- 
mensioni in alta risoluzione. 

Digitare ii programma è piuttosto fungo 
e pericoloso e pertanto sconsigliamo, ai 
lettori inesperti, la sua digitazione. 

Per venire incontro alle loro esigenze, 
tuttavia, la Systems Editoriale invia. $u 
richiesta, in cassetta, le routine grafiche 
insieme a tutti i programmi pubblicati sul 
N.14 die AC. 

Per avere la cassetta è sufficiente in- 
viare la modica cifra di 5000 {cinquemila 
ottocento) lire indicando, ovviamente, sìa 
il numero di C.C.C, desiderato sia il vostro 
nonni nativo completo. Non si effettuano 
spedizioni contrassegno. 

SYSTEMS EDITORIALE 
Servizio arretrati 
Viale Famagosta 75 
20142 MILANO 


Commodore Computer Club - 1 7 




GRAFICA 


100 REM COMMODORE 64 

110 REM CARICARE LE ROUTJNES GRAFICHE 
1 15 REM DEL N. 14 D I C.L.C, 

1 1S : 

120 REM * MENU' * 

130 PR JNTCHR$C 147) "DISEGNI 64 "CHR$( 3 7): POKE53280 ,14! «-TEXTS , 1 


1 " 
2 » 
3 n 

5" 
6 “ 
~ì " 

8 


ii 




140 PR INT"OUADR IFOGL IO 

150 PRI NT "SPECCHIO ? 

160 PRI NT "GALLERIA 

170 PR INT"ELICA 

180 PRI NT "ELLISSE DI QUADRATI - 

190 PR INT"GCCH IO 

200 PR INT'*CONI 3 D I ME MS I ON 1 

210 PRI NT "SORGERE DEL SOLE 

£20 PR 1 NT “ «- RITORNO AL MENU' 

230 GETINi: IFINt- 1 ’ "THEN230 

240 ONV AL ( I N$ > GOSUB 1 000 ,2000,3000,4000 ,5000,6000 ,7000,8000 
250 CLRiRESTORE 
260 GETPA$: IFPASK > " «-" THEN260 
270 GOTO 130 

1000 REM * DUAOR IFOGL IO * 

1010 «-CLEAR : «-GRAF0,3I POKE53280 ,0 s «-COLOR 1 
1020 FGRX=- 160TOIG03TEPI0 
1030 «-DRALIX, 100,0,0 ,ABS<X/2) ,0 
1040 «-DRALIX ,-100,0,0, -ABS (X/2 ) ,0 
1050 NEXT 

10G0 FORY=- 100TO100STEP10 
1070 «-DRAW-J60 ,Y,0 ,-ABS(Y) ,0,0 
1080 «-DRAW1S0, Y,0,ABS (Y) ,0 ,0 
1030 NEXT 
! 1 100 RETURN 
2000 REM * SPECCHIO * 

2010 «-CLEAR : «-MGRAF0 , 1 , 1 1 , 15 : POKE53280 ,0 
2020 FORN--160TO90STEP4 
2030 «-COLOR 4 *RND <13 
2040 «-ORAUJ- 360,-100, 0,N, 100,0 
2050 «-DRAW-160, 100,0, N, -100,0 
£060 «-DRALJ1 60, - 100, 0,-N, 100,0 
2070 «-DRAW1G0, 3 00,0 ,-N,- 100 ,0 
£030 NEXTN 
2030 RETURN 
3000 REM * GALLERIA * 

3010 PCKE53280 ,5 ! «-CLEAR ! «-MGRAF5 , 1 ,0 , 14 : «-COLOR 1 
3020 FORT =0TO 1 000STEP 100 
3030 «-ARC0,0,T,100,100,-.3,<f + .3,2* tf/40 
3040 NEXT 

3050 «-COLOR3 : FORQ=30TO 10STEP-5 
3060 «-ARC0 ,0,1 000 ,Q,Q,0,2*if,2*<f/12: NEXT 
3070 «-COLORI 

3080 «-DRAW-95 , -30 ,0, -35, -30, 1000 
3090 «-DRAW95 , -30 ,0 ,35 , -30 , 1600 




f 8 - Commodore Computer Club 





l-. 










cercasi agenti 
e distributori 





' C 



F" n 

ir* 


H 

■ 

wF dà 

' ? .V 

Jf ìjB 1 

■ 7 H 1 





!■ ,”v 







L 








GRAFICA 

r 


3100 F ORP = 1 0TO 1 000STEP 1 0 

3110 «-C0LOR2 : -«-DRAW-95 , -33 ,P ,95 , -33 ,P iNEXT 
3 120 +-COLGR1 Ì+-DRAU0, -30 ,0,0 ,-30,1000 
3130 RETURN 
4000 REM * ELICA * 

4010 PQXE532S0 ,S 

4020 ^CLEARi*-GRAF8,7:+C:0L0Rl 

4030 F0RX=-7.ST07.9STEP.25 

4040 HDRAWX*20,COS(X >#95,0 , <X-,25 >*B0,CO5<X- .25>*S5,0 
4050 «-DRAW- 160,0,0 ,X*20 ,COS (X ) *S5 , 0 
4060 NEXT 
4070 RETURN 

5000 REM * ELLISSE DI QUADRATI t 
5010 P=rf!CX=l 

5020 POKE53280 ,13! «-CLEAR '• +MGRAF 13,0, 1,12 
5030 FORAN=0TO <f*2STEPif/l 8 
5040 +COLORCX: CK=C5ì+ ! J IFC>1>3THENCZ=1 
5050 X7,=C0S(AN>*65 
5060 Y7.=SlNfAN)#40 

5070 *-ARCX7.,Y7,O,60,60,<i/4+P,S#.f/4+P,«r/2 
5080 P=P + if/l8 
5080 NEXT 

5100 X7=CQS(AN)#65 
5110 RETURN 

6000 REM * TI VEDO ! ! ! * 

6010 +-CLEAR : <-GRAF7 ,6 : PGKE53280 ,7 : vCOLOR 1 
6015 FORX I a 0TQ«rSTEF 4 
6020 FORX = -<r/2TOrf/2STEPrf/50 
6030 +-DRALJ0 ,0,0,X*100 ,COS ( X+X 1 >#100,0 
6040 NEXTX 
6050 NEXTX 1 
6060 RETURN 
7000 REM * CONI 3D * 

7010 4-CLEAR! «-GRAF6 , 7 s +-CQLQR 1 ! PQKE53280 ,6 
7020 FGR2 1 ~ 1200T00STEP -400 
7030 FORX1 =- 120TO 120STEP240 
7040 FORAN=0TO2*«tSTEP2*rf/30 
7050 X=C03 < AN) #50 i Z =S IN< AN) #50 
7060 +GRAU0+X1 ,100,60+2 1 ,X+X 1 , - ! 00 ,2 +60+Z 1 
7070 NEXTAN 
7080 NEXTX 1 SNEXTZ 1 
7030 RETURN 

S000 REM * IL SOLE SORGE ANCORA * 

8010 +-CLEAR : <-M6RAF0,7 ,4 , 1 : POKE53280,0 
8020 +COLOR1 : FORNAI TO50 

8030 4-DRAW0 ,0,0, (RND ( 1 ) #320 ) - 1 60 ,RND (1 >*90+13, Qi NEXT 
8040 +C0L0R2 !FORX=-160TD160STEP20 
8050 +-DRAW0 ,0,0,X,-100 ,0sNEXT 
8060 FORY=- 100TO0STEP 1 0 

8070 +DRAUJ0 ,0 ,0 , - 160 , Y,0 H-DRAW0 ,0 ,0 , 160 , Y,0 :f\EXT 
8080 RETURN 





20 - Commodore Computer Club 




IN CLASSE 


QUALSIASI COMMODORE 


Tempo di saldi 



di A. de Simon e 


M 

LwM. olio spesso si sente dire che con la 
matematica è impossibile unire l’utile al 
dilettevole. 

Il programma pubblicato in queste pa~ 
gine, valido per qualsiasi computer Coni' 
inodore* si rivela invece utilissimo sia per 
imparare con precisione la procedura per 
l'applicazione dello sconto percentuale* 
sia per valutare con sicurezza f giocando, 
la convenienza nell'acquisto della merce 
offerta in saldo. 


Come gira il programma 

Dopo aver digitato il breve listato, da- 
te il RUN, Apparirà, sul vostro schermo* 
una videata simile alla seguente:. 

Indovina lo sconto applicato 

Prezzo precedente 77000 
Prezzo attuale 73150 
Sconto applicalo (% )? 


Col finire di una 
stagione i negozianti 
affiggono, nelle loro 
vetrine, cartelli che 
assicurano sconti 
favolosi. Siete in 
grado di valutare, a 
colpo d’occhio, 
quale è lo sconto 
realmente 
applicato? 


Dovrete, ovviamente, digitare la per^ 
cemuale che ritenete valida. Nel caso 
particolare, battendo il valore 12. e pre- 
mendo il tasto Return, il computer 
risponderà: 

Esagerarci II prezzo, col 12% di sconto, 
sarebbe: 677611 
Scorno applicato {%)? 

Digitando* invece, un valore troppo 
basso* come ad esempio 3* il calcolatore 
risponde: 

E‘ poco 1 11 prezzo* col 3% dì sconto, 
sarebbe: 74690 

Come avrete intuito la domanda verrà 
posta fino a che non avrete indovinato lo 
sconto esatto. In tal caso otterrete come 
risposta: 

Hai indovinato dopo 5 tentativi 
Tempo un piegai o= 000345 


Commodore Computer Club - 2 1 





IN CLASSE 


Tale risposta, è inutile di rio, appare se 
avrete tentato cinque volte nd dare valo- 
ri diversi, mentre il tempo trascorso dalla 
Formulazione delta prima domanda è di 
zero ore, tre minuti e 45 secondi.. 

Nel caso non indoviniate dopo dieci 
tentativi, il computer. impietosito, forni- 
rà egualmente in risposta esatta. 


Come funziona il programma 

Il listato, talmente breve c commenta- 
ta. non merita ulteriori spiegazioni. 

Ricorderemo, soprattutto ai princi- 
pianti, che con l'istruzione RND(O) è 
possibile generare un numero casuale 
compreso tra ‘“0" e "TV 

Provate a far girare il seguente micro- 
programma: 

ì PRINT RNDfO): GOTO 1 
Vedrete comparire sullo schermo, in 


rapida successione, una serie infinita di 
numeri decimali. Poiché raramente può 
essere utile la generazione di un numero 
compreso in un intervallo così insolito, è 
possìbile aggirare l'ostacolo moltiplican- 
do Io stesso numero per Hi, HX). iono e. 
in definitiva, per una potenza di dieci. 
Questa operazione, come è noto, “spo- 
sta ' la virgola di tanti posti quanti ne 
rappresenta il numero degli zeri della po- 
tenza di 11 K 

Digitale, per chiarire te idee, la se 
g eterne riga; 

1 PRINT RND<Of 10000: GOTO l 

Potrete notare, in questo easo t che la 
sequenza di numeri che appare è com- 
presa tra + tr e "99W\ Se interessa la 
sola parte intera dei numeri che com- 
paiono, modificate la riga come segue; 

l PRINT fNT(RND(m* 10000): 

GOTO l 


Nel programma pubblicato, però, t 
necessario che il prezzo generato casual- 
mente sìa una cifra... credibile. Tutti i 
prezzi sono, in genere, arrotondati alle 
500 oppure 100 [ire. Per ottenere que- 
st ultimo arrotondamento è necessaria 
un' ultima, semplice modifica; 

1 PRINT INT(RND(0)* 10001))* 100: 
GOTO 1 

Effettuando la moltiplicazione per 
HXJ. tale ultima operazione, aggiunge 
due zeri “in coda al numero generato 
casualmente. 

Il lettore, “'giocando" con l'istruzione 
RNDfO), può, a sua volta^ generare una 
casistica pressoché infinita di intervalli 
numerici. L esperienza acquisita in tal 
modo potrà essere sfruttata, ad esempio, 
per scrivere programmi in cui si rivela 
utile la generazione dei numer casuali 
(giochi dì cane, roulette, adventures n 
eccetera). 


100 

REM 

INDOVINA LO SCONTO 

110 

REM 

PROGRAMMA 

120 

REM 

PER QUALSIASI COMPUTER 

130 

REM 

A. DE S3NDNE 

140 

REM 

DIDATTICA ’BE 


150 : 

1B0 PRI NTCHRS C 147 > ” INODU I NA LO SCO 
NTO APFLICATO‘'CHR$C 13) 

170 X-RNDC01 : RE(1 GENERAZIONE NUME 
RQ CASUALE CONPRESO TRA ”0" E 
Jl 1 N 

160 A- INI CX* 1001 ; REM "ESTRAZIONE” 
DI NUNERO CONPRESO TRA ”0" E 
” 100 ” 

1S0 X-A*130:REN ULTIME DUE CIFRE= 
00 C PREZZO CONPRESO TRA 0 E 10 
0000 

800 Y-RND ( 0 ) : FEN GENERAZIONE UALC 
RE CASUALE 

P10 B-INTCY*40) : IF B"0 THEN 800 : RE 
N "ESTRAZIONE" SCONTO PERCENT 
UALE CESCLUSO "0”] 

E£0 REM VISUALIZZAZIONE NESSAGGI : 
PREZZO PRINA E DOPO LO SCONTO 

£30 PRINT: PRINT”PREZZO PRECEDENTE” 
X*10 

£40 REN APPLICAZIONE DELLO SCONTO 

£50 FRINT"PREZZO ATTUALE " I NT C X- ( X* 
B/1003 1*10; UI-0: REM U-CQNTATOR 
E 01 TENTATICI 


£60 TI$-”000000" : REN AZZERAMENTO 
DEL TENPO 

£70 REN INTERUENTO DEL CQNPUTER N 
EL CASO NON SI RIESCA AD INOOU 
INARE 

£B0 IF L)> 10 THEN PRINTCHRSC 19) "TE 
LO DICO IO . . . "E : GOTO 380 
£90 INPUT "SCONTO APPLICATO CVJ ”;Z 
: bJ^UJ+l :0“INTCX-X*Z/1001*10 
300 REN CASO DELLO SCONTO INDOUIN 
AIO 

310 IF Z~ E=0 THEN 3G0 
3£0 REN CASO DELLO SCONTO ECCESSI 
UG 

330 IF Z-B>0 THEN PR I NT "ESAGERATO ! 

IL PREZZO, COL"Z ,f :s DI SCONTO 
SAREBBE: GOTO £80 
340 REN CASO DELLO SCONTO IN5UFFI 
CI ENTE 

350 IF Z~E< 0 THEN PR1NT”E ’ POCO! I 
L PREZZO, CDL"Z "?s DI SCONTO, S 
AREBBE: GDTO EB0 
3G0 PP I NTCHRS C 1 B > ”HA I INDOVINATO 0 
OPO”U" TENTATIUI ! ” 

370 PRINT "TEMPO I NP I EGATO-"T IS 
380 PRINTCHRSC 17 J "PER CONTINUARE P 
REMI UN TASTO" 

380 GET A$:IF AS- H " THEN 3S0 
400 RUN 


22 - Commodore Computer Club 




IN CLASSE 


QUALSIASI COMMODORE 

La merce più economica 



confronto. Dopo aver trascorso un pO di 
tempo al computer, meglio se insieme 
con amici e familiari, avrete sicuramente 
acquisito una sufficiente esperienza che 
vi sarà utile, tra l'altro, per individuare 
quale è la confezione più conveniente di 
un particolare prodotto (caffè, formaggi, 
detersivi, eccetera). 


Come funziona il programma 


Anche il listato di queste pagine si basa 
sull'utilirzo intensivo della funzione 
RND(O). In questo caso* pero» è stato 
necessario selezionare con cura il nume- 
ro casuale in modo da evitare incon- 
gnienze o indovinelli troppo semplici da 
risolvere» 

La differenza del prezzo unitario, in- 
fatti. deve esser modesta in modo che sia 
più difficile indovinare quale delle due 
merci è più cara dell'altra. Questo pro- 
blema è stato risolto escludendo tutti ì 
valori unitari che differiscano tra loro di 
oltre il 2.0%. 

Inoltre i due pesi (e. analogamente, i 
due prezzi), devono esser diversi tra lo- 
ro» altrimenti lindo vinello è fin troppo 
facile. 


opo aver dato il RUN* sullo schermo 
appare una vidcata del tipo: 


MERCE A. N.FTH: 3,5 PREZZO 

L. 1400 

MERCE B. N ETTI: 8.5 PREZZO 

L.3S25 

QUALE’ LA PIU 1 ECONOMICA? 
lA/B) 

Viene, in altre parole, visualizzata una 
situazione classica che si verifica nei ne- 
gozi che non si attengono alle disposizio- 
ni Legislative. A questo punto dovete 
premere uno dei due tasti (A/B) per co- 
manicare al computer quale delle due 
merci considerate più economica, Se. nel 
caso particolare esaminato» digitate 
“B". otterrete in risposta: 

MERCE INDICATA* B 
HAI SBAGLIATO 
1400 / 3.5 =L, 400 L'ETTO 
3X25 / 8.5 =L-450 L ETTO 

PREMI UN TASTO 

Premendo un tasto qualunque, ovvia- 
mente, il computer proporrà un nuovo 


Recentemente una 
disposizione di 
legge obbliga i 
commercianti ad 
indicare il prezzo 
netto unitario dei 
prodotti alimentari 
Non tutti, però, si 
attengono a tale 
disposizione e 
questo programma 
può esser utiie per 
individuare, a casa, 
quali sono i prodotti 
più economici . 


Commodoro Computer Club - 23 






IN CLASSE 



Esempi dei casi evitati: 


Peso 4.7 Prezzo 4300 
Peso 8.2 Prezzo 2300 


Peso 4.7 Prezzo 4550 
Peso 4.7 Prezzo 5750 


* I lettori più volenterosi potranno inse- 
rire facilmente ulteriori modifiche, in 
modo, ad esempio, di trasformarlo in 
gioco per più giocatori, oppure di indivi- 
duare quale fra tre confezioni (e non tra 
due ) sia la più conveniente, eccetera, 


Peso 5,2 Prezzo 55fX) 
Peso 4.7 Prezzo 5500 


100 

110 

120 

130 

140 

150 

160 

170 

1B0 

190 

£00 

210 

220 

230 

240 


250 

260 

270 

200 


REM QUAL' E 1 LA 
REM MERCE PIU * * 

REH ECONOHICA? 

* 

■a 

REM QUALSIASI COMPUTER 

m 

REM A. DE SIM0NE 
REM DIDATTICA '86 

m 

« 

PRINTCHRSt 1473 "ATTENDERE * , , ” 
GOSUB 350: X-Xl : REM PESO MERCE 
A 

GOSUB 350 : Y“X1 : I F X-Y THEN 210 

: REM PESO MERCE B 

GOSUB 350:XB-Xl+!00: XA-X*XB: RE 

M PREZZO MERCE A 

GOSUB 350: YB~X1*I00: YA"Y*YB: RE 

M PREZZO MERCE B 

IF XB< YB AND XB/YB< ,0 THEN 200 

: REM ESCLUDE DIUARID ECCESSIU 

Q 

IF YB<XH AND YB/XB<.B THEN 200 
IF YB-XB THEN 200: REM ESCLUDE 
PREZZI EGUALI 

PR INTCHRSK 147 3CHF3 C 13 3 ” MERCE A 
* N . ETT I : ”X" PREZZO L,”XA" 
PRINT"MERCE E , N * ETTI : ”Y" PREZ 
ZO L . " YA" 


290 

300 

t 

310 

320 

330 

3*i0 

350 

360 

370 


PRINT : PRINT”QUAL ’E ’ LA PIU’ EC 
ONDMICA? ( A/BD ” : TI $-"000000” 
GET A£ : I F AS-”” THEN PRINTCHRS 
( 13 )TI £ : BOTO 300 
IF A£“”A” OR A$-”B” THEN DOSU 
B 330 

GOTO 300 

* 

* 

REM GENERAZIONE NUMERI CASUAL 
I 

XI "INI C RNDC 0 3*10) + « 5*( RNDt 03 > ,j 

5): IF XK1.5 THEN 350 

RETURN 


3B0 REM UX SUALI ZZAZIONE RISULTATO 
390 Z1-XA/X:Z2«YA/Y: POR 1-1 IO S:P 
R1NT : NEXT : PRINT”MERCE INDICATA 
- ”A$ 

400 IF ZKZ2 AND THEN 430 

410 IF ZB<Z 1 AND AS-"B” THEN 430 
420 PRINT”HAI SBAGLI ATCT : GOTO 440 

430 PR I NT "HAI I NCQUI NATO! ” 

440 PRINTXA”/ "X”-L , "XA/X"L * ETTO" 
450 FRINIVA 11 / "Y"-L . "YA/V jr L IETTO" 
4B0 PRINT: PRINT "PREMI UN TASTO" 
470 GEI X9S : I F XS~ BB THEN 470 
480 RUN 


24 - Commodore Computer Club 





SPECIALE 


PROTEZIONI 
PER I TUOI PROGRAMMI 











li UTILE 

COMMODORE 64 & C-128 


Protezione antillst 



di Sandro Garofalo 


I l listato di queste pagine 
la visualizzazione su schermo di un 
qualsiasi listato basic. 


Le operazioni da compiere per 
attivarlo sono le seguenti: 


* Caricare e far girarare (con un sempli- 
ce RUN) il programma di queste pagine. 

* Battere il programma che se intende 
proteggere oppure caricarlo normalmen- 
te da nastro o disco. 

* Aggiungere in coda al programma la 
riga: 63999 REM 

* Digitare SYS 49152. 

* Cancellare la riga 63999 prima digitata 
(battendo semplicemente 63999 e pre- 
mendo il tasto Return) 


Come funziona 


“Antilisf’ si colloca nella memoria a 
partire dalla locazione 49152 e manipola 
direttamente le lince del programma 
basic, 

Il funzionamento ù piuttosto semplice: 
ad ogni linea basic viene aggiunta una 
REM seguita da alcuni caratteri speciali. 
La sequenza completa di tali valori nu~ 
menci è la seguente: 

58 143 34 141 147 34 204 

Il numero 58 è il codice ASCII del 
doppio punto (0 separatore, come è no- 
to, di due istruzioni basic, 

L’istruzione REM è invece rappresen- 
tata dal valore 143. 

34 è il codice delle virgolette ('*). 

141 è il carattere speciale che provoca 
il ritorno a capo. 

147 è il codice di cancellazione 
schermo. 


Un brevissimo 
programma in 
Linguaggio 
Macchina che può 
dare dei filo da 
torcere a chi tenta di 
esaminare i vostri 
programmi in basic. 


204 è il carattere shift insieme con 

%i V\ 

Al momento del LIST l'interprete basic 
non riesce a scrivere la linea sullo scher- 
mo c viene emesso il messaggio “7SYN- 
TAX ERRORE. 

"Antilist" colloca la sequenza dei ca- 
ratteri descritta alla fine di ogni linea de! 
programma. Tale procedura si realizza 
ricorrendo a due routine delta ROM del 
basic (confrontare manuale del Sistema 
Operativo): 

BLTUC collocata a partire dalla loca- 
zione esadecimale A3B8 e LNKPRG 
collocata da A533. 

La prima sposta in avanti un'area di 
memoria e viene “chiamata" 1 per ogni 
linea di programma da proteggere, in 
modo da creare lo spazio necessario per 
inserire la sequenza della REM. 

La seconda serve a ristabilire i punta- 
lori della catena del basic che, in seguilo 
allo spostamento di memoria e Tinse ri - 
memo della REM , sono tulli alterali. 

Una volta protetto, il programma può 
essere salvato o fatto girare rego- 
larmente. 

E' doveroso ricordare che la routine 
" Antilist" non è completamente efficace 
per chi tenta di listare il programma pro- 
tetto per mezzo di una stampante. In 
questo caso, infatti, pur se con difficoltà, 
un utilizzatore sufficientemente esperto 
riesce a leggerlo. 

La routine proposta, tuttavia, è di no- 
tevole interesse per la sua brevità e la 
consigliamo come base di studio per nuo- 
ve interessanti applicazioni nel campo 
del Linguaggio Macchina. 


26 ■ Commodore Computer Ciub 



L’ UTILE 


10 REfl ANTI LIST 

11 REfl PER COMMODORE 64 

12 : 

13 REM DI SANDRO GAROFALO 

15 REM GENOUA 

16 : 

17 REfl ROUTINE IN L.N. CHE PROTE 
GGE 

1B REM DAL LIST I PROGRAMMI IN B 
ASIC 
£0 : 

100 PRIN1CHRSC147) TABI 15)CHR$C 18) 
"ANTILIST" 

110 CS-CHRSC13) : K-0: FDR 1-49152 TO 
49263 

150 READ A : POKE I , A : K-K+A : NEXT 
130 IF K<>14E13 THEN PR I NT "ERRORE 
NEI DATI”: END 

140 PRINTCS;CS "CARICARE IL PROGRAM 
MA BASIC DA” 


150 PRINT "PROTEGGERE E DIGITARE "C 
HR$C18)”5Y5 4SI SS ” 

300 DATA 173, 1,9, 133, 35, 173, S,B, 13 
3,96,56, IBS, 35, £33, 1 , 133,95 

305 DATA 133,951,165,36,233,0,133, 
252, 133,36,165,46, 133,91 , 165,4 
5,133 

304 DATA 90,24,105,7,133,09,133,45 
, 165,46, 105,0,133,46,133,83,32 

306 DATA 1B4, 163, 160, 0, 105, 111 , 132 
, 145,251 , 200, 192,7,200,245,39, 
51 , 165 

309 DATA 24, 165, 251, 105, 170, 1E5, 
252,105,0,133,252, 139, 133,251 , 
160,0 

310 DATA 177,251,133,95,200,177,25 
1 , 133,96,177,35,209,158,165,45 
, 133,47 

312 DATA 133,49,165,46,133,40,133, 
50,96,50,143,34,141, 147,34,204 



EXC4LFHA 
CEM [A 


FORMULA i 

Cie ■ SPECTGiJM 


ACTION flIKliP 

CtìMtLS- SFECI RU M 
ATAPI BOO/ 130 


0MK TR1ALS 

CSM 64 


dall'INGHILTERRA i fantastici 


TUFFATI NEI FANTASTICO 


per vivere nuove emozionanti 
avventure piene di suspence e 


QUALITÀ PRIZIO soler! 7.900 è la grande proposta 

u a e«»A*>iAUk# ___ . ■ t * _* . 


MASTERTRONIC per conquistare tanti amici 

MasTgflfonic s.n.5. ■ VJe Affuggtart, éZ'A ■ ZtlOÙ - * V Q33&2386 




LUTILE 

COMMODORE 64 


Protezione 

Turbo 

Software 

(fi Giovanni WrreIJi 


La protezione del proprio software 
dalla copia abusiva è un campo 
che prima o poi interessa tutti. 
Un semplice programma 
richiesto da più parti 


D a qualche tempo la rivista "Cornino- 
dorè Club “ su cassetta pubblica i propri 
programmi registrati col "Turbo Tape", 
ausilio indispensabile per gii utenti del 
Commodore f>4 c registratore che per- 
mette di aumentare di circa IO volte la 
velocità di caricamento da cassetta. 

Quasi lutti possiedono tale program- 
ma e ehi ne fosse ancora sprovvisto può 
rimediarvi acquistando una copia della 
rivista su cassetta prima citata. 

Di seguito riportiamo un programma 
che permette la protezione del software 
registrato, appunto, in "turbo '. 

Pei ovvi ruotivi saranno fornite solamen- 
te le istruzioni per un suo corretto uso in 


quanto spiegarne anche il funzionamen- 
to sarebbe controproducente ai nostri 
fini. 

Cominciamo subito con Tclcncare le 
varie fasi da seguire alla lettera per evita- 
re ogn i p< issi bile problema: 

1} caricare in memoria il "Turbo Tape \ 
attivarlo col RUN e dare il comando 
NEW; 

2 i copiare il listato pubblicato di seguito, 
controllarlo fino ad avere Vassoiata cer- 
tezza che non contenga errori e salvarlo 
(prima di provarlo) sulla memoria di 
massa posseduta. Lo si può tranquilla- 
mente registrare anche in turbo; 


3) inserire nel registratore La cassétta che 
dovrà ospitare i due programmi generati 
dulia procedura, il primo in linguaggio 
macchina per effettuare il caricamento e 
ravviamento automatico e f altro che 
non sarà altro che il programma die si 
vuol proteggere, codificato; 

4) dare il RUN al programma che si è 
appena copiato e, dopo una piccola 
schermata introduttiva, rispondere alle 
varie domande che si susseguiranno sullo 
schermo Queste sotto volte alla cono- 
scenza del modo tn cut parte il program- 
ma da proteggere (col RUN oppure et in 
SYS) e del nume che gii vogliamo 
assegnare; 



28 - Commodore Computer Club 




L’ UTILE 


5) dopn Fultirna richiesta, comparirà il 
messaggio di premere i tasti RÈCORD 
& PLAY sul registratore. Farlo dopo es- 
sersi assicurati che ia cassetta contenuta 
nel registratore sia effettivamente quella 
che dovrà ospitare il programma protet- 
to. Al termine, togliere dal registratore 
la cassetta e metterla da parte: 

6) seguire le istruzioni che compariranno 
sul video, e precisamente: 

a) caricare il programma che si vuol 
proteggere: 

b) digitare SYS 733 e premere Return; 

c) re inserire la cassetta dove £ stata effet- 
tuata la prima registrazione, battere il 
comando precisato sul video (oppure po- 
sizionarsi su di esso col cursore) e preme- 
re il tasto Return: 

d) Premere i tasti RECORD & PLAY 
sul registratore: 

A questo punto il nostro lavoro è 
terminato. 

Per l'uso basterà semplicemente: 

- caricare il programma utility "Turbo 
Tape” e attivarla, 

- caricare con un normale LO AD (e non 
<-L) il primo programma registrato e 
premere la hami spaziai rice quando 
richiesto. 


Come utilizzare la procedura 

Facciamo ora un esempio chiari- 
ficatore. 

Supponiamo di voler proteggere il 
programma "MOTOR MANIA* 1 , la cui 
attivazione è resa possibile dal comando 
SYS 81 HH) invece del normale RUN, 

Per prima cosa caricate in memoria il 
"Turho tape’ e attivatelo (vale a dire: 
date il RUN e, non appena ritorna il 
cursore, NEW), 

Fatto questo, predisponete la cassetta 
che ospiterà il programma protetto, cari- 
cate in memoria il programma per le pro- 
iezioni (riportato in queste pagine) e atti- 
va telo con un semplice RUN. 

Alla prima domanda, con la quale si 


chiede se il programma da proteggere 
parte col RUN, digitate NO c premete il 
tasto Return, 

Alla domanda successiva, dove è ri- 
chiesta la SYS di partenza, rispondete 
con 8(KK) e Return. 

Infine, alla richiesta del nome del pro- 
gramma da proteggere, rispondete bat- 
tendo MOTOR MANIA, 

Subito dopo la pressione del tasto Re 
tum* compare la richiesta di premere 
RECORD & PLAY sul registratore. Fa- 
telo dopo aver inserito la cassetta prepa- 
rata precedentemente. 

Trascorsi circa 20 secondi di registra- 
zione, seguite le istruzioni comparse sul 
video: Caricate in memoria il program- 
ma "MOTOR MANIA” originale, digi- 
tate SYS 733 (e Return) e, dopo aver 
reinserito la cassetta messa precedente- 
menet da parte, scrivete su video <-S* 
aprite i doppi apici (le virgolette), pre- 
mete Shift+CIr/home, cursore giù, cur- 
sore a destra, scrivete PREMERE 5PÀ- 
CF,, chiudete i doppi apici ed inserite il 
, 1 T I finale. 

Fatto tutto questo* premete il tasto 
Return, i tasti RECORD & PLAY sul 
registratore, La protezione è stata appli- 
cata al vostro programma. 

Volendo utilizzare questo programma 
protetto, si carica in memoria il Turbo 
Tape, si riporta la cassetta all'Inizio della 
prima memorizzazione, sì effettua un 
LOAD * ‘MOTOR MANIA” + Return, 
si preme il tasto Commodore al momen- 
to del FOUND e la barra spaziatrice 
quando compare il messaggio premere 
SPACE, 

Tutto fi resto, attivazione compresa* è 
automatico ed il compito finale è solo 
quello di utilizzare il programma dato 
che la partenza (RUN oppure SYS a se- 
conda dei casi) è automatica. 

Per quanto riguarda l'aspetto tecnico* 
[ulta la procedura, oltre a decodificare 
ed avviare, automaticamente il program- 
ma principale, si occupa di disabilitare il 
R UN/STOP, RESTO RE, LIST* SA- 
VF* <-5 ed anche a controllare se, du- 
rante il caricamento del programma 
principale sia intervenuto un 7LOAD 
ERROR, molto frequente col "Turbo” 


I n questo caso si arresta e non dà l’avvio 
automatico del programma che potrebbe 
□vere conseguenze non certo piacevoli. 

In quest ultimo caso l'unico rimedio ù 
di riprovare a caricare il tutto e agire* al 
massimo, sulla vite di regolazione della 
testina del registratore. 

Concludiamo avvertendo che, come 
sicuramente avrete già capato, questa 
procedura è valida per qualsiasi pro- 
gramma (in Basico in linguaggio macchi- 
na) compatibile col Turbo Tape (ma non 
può proteggere se stesso) Qualche pro- 
blema può insorgere solamente con po- 
chissimi programmi che partono con la 
SYS 64738 di reset e che* anche per i 
programmi in linguaggio macchina che 
partono col RUN* è possibile effettuare 
le protezione basata sulla SYS. 


Inconvenienti passibili 

Con programmi molto lunghi o che 
occupano locazioni di memoria molto al- 
te può capitare* mentre si cerca di salvare 
col comando <-S..., i! programma codi- 
ficato, di veder stampato sullo schermo il 
messaggio ?OUT OF MEMORY ER- 
RO R con il conseguente ritorno del 
cursore. 

In questo caso una prima soluzione è 
quella di inserire, al posto del <-S preci- 
sato sullo schermo* il comando <-S 
“*■ 1 1 

L'altra soluzione, che consigliamo in 
quanto non intacca minimamente k> spi- 
rito della procedura, è di leggere il pun- 
tatore all'inizio delle variabili con it 
comando: 

PRJNT PEEK(45)+PEEK(46)*25ó 

Se il valore che ne risulta è inferiore a 
52084 (quasi sempre), allora basterà dare 
il comando FOKF 56*200 e poi dare il 
<-S originario, ricordandosi alla fine di 
spegnere il tutto oppure dì impartire la 
SYS 64738 di reset. 

Nel caso in cui tale valore fosse supe- 
riore a 521184, allora si potrà solamente 
□dottare !a prima soluzione in quanto la 
seconda provocherebbe pericolose so- 
vrapposizioni. 


Commodore Computer Club - 29 


U UTILE 


REM 


* *- 1 * -*■ 


REM ** PROTEZ I DIME PROGRAMMI * 


REM ** REGISTRATI IN TURBO * 


REM 


PER COMMODORE 54 


REM ** BY GIOVANNI UERRELL I * 


REM ** GIOIA DEL COLLE CBA) * 


REM 


#••••> * »*• » » • <* »* w «a**» w «•* * 


75 REM NON RENUMERARE IL PROGRAM 
MA 

B0 PDKE S35B0 , 0 : FDKE 535B1 , 0 
90 PRINTCHRSC 1593 ;CHR$C147J 

100 print’trightkrusi protesi 

ONE CRUORE]’' 

110 PRINT"[RIGHT]CRU5] turbo sof 
TU ìARE CRUOFF3" 

150 PR1 NT ”C R I GHT3 C RUS] BY GIOUANNI 
UERRELLI C RUOFF3 ” 

130 PRINT"C RIGHT3L RUS3GIOI A DEL CO 
LLE CBA3 CRUOFF] ” 

140 CK-0 : FQR 1-679 TD 767; READ EU: 

PDKE I ,GU:CK-CK+GU:NEXT 
150 IF CK< > 10241 THEN PRINT'*ERRORE 
NEI DATA: CONTROLLARE :END 
160 A$= " " : PR I NT "IL PROGRAMMA DA PR 
OTEGGERE” 

170 INPUT "PARTE COL C RUS3RUNC RUOF 
F 3 <S/NV ;A35 

1B0 ÌF LEFTSCAS, 13-”S" THEN 570 
190 SY-0; PRINT”OUAL E* LA C RUS3SYS 
CRUOFF3 DI PARTENZA” ; ; INPUT SY 
B00 IF SY< 1 OR SY> E5536 THEN GOSUB 
500: GOTO 190 

510 F~0:IF SY-64738 THEN SY-3576B: 
F-l 

550 HI-INTCSY /55G 3 : LO-SY-H I *556 
530 POKE 736, LO: POKE 754, LO 
540 POKE 737, HI: POKE 755, HI 
550 IF F THEN LO-556 : H I -555 

560 POKE 755, 76; POKE 750, LO: POKE 7 
51 , HI 

570 A$- ’’ ” : PRINT”QUAL E’ IL NOME DE 
L PROGRAMMA” 

5B0 INPUT "DA PROTEGGERE” ; AS 
590 IF LENC AI3> 15 THEN GOSUB 500 ; G 
□TO 570 


300 

310 

320 

330 

340 


350 

360 

370 


3B0 

350 

400 

410 

450 

430 

440 

450 

460 

470 

4B0 


490 

500 

510 

550 

530 

540 

S50 

560 

570 

5B0 

590 


PDKE 646 , PEEK C 53581 3 
PRINTCHRSC1473 ”400 SAUE”CHR$C3 
4 3 ; A$; CHRSC34) ; ”,1,1” 

PR1NT "RUN350 " 

FOR P-l TO 1 0 : GET P$:NEXTP 
POKE 631, 19: PDKE 635, 13: POKE 6 
33, 13: POKE 19B , 3 : END 
PRINTCHRSC 1473 ; CHRSC 1593 
POKE 770, 157: POKE 771,5 
POKE 1050, PEEKC433 : POKE 1051, P 
EEKC44 ) 

POKE 1055, PEEKC453 : POKE 1053, P 
EEKC453 

POKE 43, 167: POKE 44, 5: POKE 45, 
4: POKE 46,3 

REM +* COPIA ANCHE QUESTA LIN 

EA ** 

POKE 770 ,131: POKE 771,154 
POKE 43. PEEKC10503 ; POKE 44 , PEE 
KC 10513 

POKE 45, PEEKC10553 : POKE 46, PEE 
KC 1 0533 
POKE 759,96 

PRINTCHRSC1473 "PER COMPLETARE 
LA PROCEDURA CARICA IL" 

PRI NT "PROGRAMMA CHE UUOI PROTE 
G6ERE , BATTI IN” 

PRINT”D I RETTO CRUS35Y5 733CRU0 
FF3 E POI EFFETTUA UN” 

PR I NT ’VS "CHR$ C34 3CHREC 147 3CHRS 
C 173CHR$C55) "PREMERE SPACE”CHR 
SC 34)” , 1 , 1" 

NEL! 

PRI NT "QUALCOSA NON UA: RIPETI . 
RETURN 

DATA 163,555,141,040,003,169,0 
50,141 , 103, 195 

DATA 169,544,141,051,003,169,1 
95,141,005,003 

DATA 169,005,141,003,003,076,1 
33, 195,169,131 

DATA 141,005,003,169,164,141,0 
03,003, 165,144 

DATA 540,003,108,005,003,165,1 
74,133,045, 165 

DATA 175,133,045,534,165, 000, 1 
93 , 000 , 006 , 500 

DATA 009,535,540,016,535,540,0 
13,076,544,005 

DATA 073,555,540,003,157,000,0 
06,535,508,535 

DATA 035,094,165,035,145,166,0 
76,174,167 


30 - Commodore Computer Ctub 



OLTRE IL BASIC 


Autostart 

64 


di Pasquale D’Àndrdi 



Una semplice e 
breve utility per 
proteggere i propri 
programmi, che 
potrà essere 
utilizzata , 
limitandosi a 
digitarlo e a seguire 
le semplici 
istruzioni, anche da 
coloro che non 
intendono 
“studiare” il 
Linguaggio 
Macchina. 



Lm. parecchi sarà capitato di caricare un 
programma da nastro o da disco c dii consta la- 
re come questo, appena terminata ly !asu di 
lettura, parta da solo, come se il computer 
avesse digitato, da solo, RL’N + Return Na j 
tura (mente, oltre ad essere comoda per la 
brevità, questa anormale procedura di carica- 
mento impedisce all'utente di “sbirciare" nel 
programma e di apportarvi e ve ni nuli modifi- 
che, Spesso un programma registrato con la 
tecnica dell' AUTOSTART {partenza auto- 
matica \ non può essere bloccato con la pres- 
sione de! tasto RUN/STOF. nemmeno in 
compagnia Jet più potente RESTORE Sa- 
rebbe molta interessante applicare questa 
tecnica ai nostri programmi, irta soprattutto 
sapere come si comporta il 64 quando carica 
questo tipo di file. 

Per fare ciò, parleremo prima di diversi 
argomenti che, a p parerli emerite non connessi 
da un filo logico, saranno di fondamentale 
importanza per il raggiungi mento del nostro 
fine Solo in seguito potremo descrivere il 
funzionamento della routine che genera 
r AUTOSTART 


l na panoramica sul basic del 64 

Appena acceso, il C-64 si presenta con l\ 
nota v ideata avvertendoci, con il READY, 
che è pronto ed aspetta che noi immettiamo, 
tramite la tastiera, un comando o una linea 
scrini in basic, convalidata dalla pressione dui 
tasto Return. 

Ma che eos'È e come funziona il basic del 
64 ,f 

fi micrQpn messore 65 Uh cioè la " ‘mieme" del 
computer, non capisce H basic, ma solo é! Lin- 
guaggio Macchina (L.M.). linguaggio non fa- 
Cile da apprendere e da usare, ma velocissimo 
ed efficiente. Permuto, prima di eseguire un 
qualsiasi comando basic, il 65 IO ha bisogno di 
un programma in l inguaggio Macchina che 
"traduca” il comando in una serie d’istruzioni; 
direnarne nte eseguibili dal microprocessore 

In altre parole, il 65111 ha bisogno di un 
"interprete’'. 

Questo traduttore è appunto costituito da 
un programma in L.M lungo H Kbylcs che, 
grazie alfe ROM possedute dal M f ni e mone 
che non si cancellano) ti siede pu t manente- 


mente nel computer, attivandosi ogni volta 
che lo accendiamo. Il basic fa uso di alcune 
ronl me di utilità generale (tra cui quelle che 
gestiscono la registra/ ione e la Lettura dei pro- 
grammi). che fanno parte del KERNAL (noc- 
ciolo), anch'cs?to residente in ROM. per altri 
8 K hytcs di memoria 


1 vettori 

La mappa della memoria delC-64. quando 
questo viene acceso, si presenta come in figu- 
ra 1. Come sì può notare, essa comprende 
65536 locazioni di memoria le quali sono divi- 
se in tre gruppi principali: 

1/ memoria RAM: si può leggere e ci si può 
Scrivere, ma il suo contenuto viene perso 
quando si spegne il computer (memoria detta, 
appunto per questo, "volatile"); 

Zi memoria ROM: si può solo leggere, ma £ 
permanerne; 

„V me mona I/O; controlla ri funzionamento 
delle periferiche, de! video e del suono. 


Commodore Computer Club - 3 7 


OLTRE IL BASIC 


Figura 1 

MAPPA DI MEMORIA DEL C-64 


RAM usata dai BASIC 
e dal KERNAL 


RAM usata dal video 


RAM utilizzabile per 
i programmi BASIC 


0 

1023 


1024 


2048 

40959 


ROM interprete BASIC 


RAM libera a disposizione 
deH'utente 


Memoria di I/O 
i RAM colore 


49151 


49152 

53247 


53248 

57343 


ROM KERNAL 


57344 

65535 


iy Depositare, mediante PGKE. i codici dei 


t ome precederti emette affermato, iJ basic 
cd il KERNAL risiedono su ROM tessendo 
ini modificai? ili, dobbiamo Forbirci passiva- 
rne ri re lui lo ciò che ci rifilano. 

Ed intani e così se fi lavora in basic, ma se 
siamo in grado di scrivere delle routine in 
L...M che ri sostituiscami u quelle del basic 
fornirò dalle ROM, possiamo mutare il corti" 
portamento del computer a nostro piacimen- 
to^ Ma, visto che le ramine del basic non sono 
ni odi fica bili, in che modo possiamo realizzare 
io scopo prefissalo? 

Mamma Commodore ha pensalo anche a 
questo e ha creato tabelle di vettori ideiti 
anche "pini la lo ri’’.) che risiedono in RAM. 
Spieghiamoci meglio; il L.M. che costituisce il 
basic è dotato di diverse decine di routine a se 
stami che realizzano determinate funzioni 
(come la stampa sul video di un certo messag- 
gio, la decifrazione dei comandi, la loro ese- 
cuzione, il controllo degli errori eccetera} c le 
più: importanti sono siate "vettorizzate" m 
RAM Ad esempio, quando il programma 
principale che controlla tutte queste routine 
ha "scoperto’ dìe in un comando da noi digi- 
tato c’C un errore, non chiama direttamente la 
routine che II gestisce. 1 , bensì legge il contenu- 
to di due locazioni di due locazioni di memo- 
ria RAM consecutive (in questo caso la 76B c 
hi Tfiy), saltando alla routine che inizia a parti- 
re dall'indirizzo contenuto :si quest t due byte, 

Precisiamo che ci vogliono due byte per 
codificare un indirizzo, perchè un byte può 
contenere valori che vanno da Ga 255 mentre 
sappiamo che un indirizzo di memoria può 
arrivare fino a 65535 (ulteriori chiarimenti su 
questo argomento si trovano nell ‘articolo 
" Microgioco da addestramento", comparso 
sui numero 23 - Settembre 1985 - di questa 
rivista). Il valore contenuto nel vettore si cas- 
cola leggendo il secondo byte, moltiplicando- 
lo per 256 ed aggiungendo il valore del primo 
byte. 

Supponiamo, per esempio, che la locazione 
76H contiene il valore 139 e Sa 769 il valore 
227. Se si moltiplica 227 per 256 (ottenendo 
58112) e s.i aggiunge 139, si ottiene l'indirizzo 
desiderato: 5825 E In pratica ciò si ottiene 
digitando; 

PRIMI PEEK(769|*256 + PEEK(76#) 

Se, invece di lèggerlo, vogliamo depositare 
un cerio valore in un vettore, dovremo divi- 
derlo per 256. porre il quoziente nel secondo 
byte ed SI resto nel primo. Esempio: 
se vogliamo porre l'indirizzo 2049 nel vettore 
7(10-701, do\ remo dividere 2049 per 256, otte- 
nendo 8 conte quoziente intero ed I come 
resto: K va in 701 ed ì in 700. 

L' : na schema Oca rappresentazione di quello 
che è staio descritto è offerta dalla figura 2. 
Ricordiamo che miro ciò avviene sempre ed 
automaticamente lune le volle che il baste 
deve eseguire una mutine vettori? za m c non 
solo quel la che gestisce gli errori, che abbia- 
mo riportato a puro titolo di esempio. 

Adesso è possibile capire come si possa 
intervenire direttamente sul funzionamento 
del basii -noiù sufficiente modificare i punta- 
tori di queste routine m modo che indirizzimi 
ad una locazione RAM e scrivere, a pan he da 
questa, una nostra routine mL.M. 


Il buffer della tastiera 

Digitate questo semplice programmino: 

100 IF PEEK(198) < > 10THEN Mi 

Dando il REM, il cursore scompare perchè 
il computer sta eseguendo un programma- Le 
istruzioni della linea 10(1 significano "aspetta 
finché il valore contenuto nella locazione 198 
non ria 10", A questo punto digitiamo lenta- 
mente dieci caratteri a caso notando che sul 
video, finché non abbiamo premuto il decimo 
tasto, non accade nulla. Poi appare il REA- 
DY segnalando che il programma è terminato 
e, quasi con temporaneamente, i caratteri che 
abbiamo digitato precedente mente vengono 
visua lizzati, come se d computer li avesse “ri- 
cordati". La stessa cosa succede se il pro- 
gramma è scritto in L.M. I! C-64 si “ricorda" 
dei caratteri digitati perchè, a mano a mano 
die vengono seri tEÌ dall'utente, esso li deposi- 
ta in una parte di memoria chiamata RlfF- 
FER, situata in RAM dalla locazione 631 alla 
640. 

il numero massimo di caratteri che si posso- 
no immagazzinare in questo buffer è 10 e 
questo valore, contenuto nella locazione 198. 
viene automaticamente aggiornato dyt coiti 
puter a mano a mano che si premono i [asti 
Ora si comprende il funzionamento del pro- 
grammino; esso aspetta che il buffer si sia 
riempilo (cioè che la locazione 198 contenga 
10} prima di "uscire". Naturai mente, essendo 
m RAM. il buffer è modi fi cabile dall'utente 
che deve seguire questa procedura; 


caratteri prescelti nel buffer (il primo va in 
631. il secondo in 632 e cosi via. fino alla 64tJ). 
Precisiamo che i codici sono del lipo ASCII e 
la corrispondente tabella carattere -codice vi 
trova ndL Appendice F del manuale 
d’istruzioni: 

2 / introdurre il numero dei caratteri memo- 
rizzali ne! buffer nella locazione 19K (per 
esempio, nel caso si fossero utilizzati 7 endici, 
ci vuole PO K E 198 J); 

3y fare in moda che compaia READY sullo 
schermo (per esèmpio, far terminare il pro- 
prio programma con END o STOP), 

Con questo programmino, comparirà la 
scritta “64" sullo schermo: 

10 PRINT CHRÌ(147): “SONO II 
COMMODORE’ 1 

20 POKE 631.54; REM 54 è il codice ASCE 
di "6” 

30 POKE 632.52: REM 52 è it codice ASCII 
di 4" 

4n POKE 198 .2: REM 2 è il numero dei ca- 
ratteri di "64" 

50 END 

Struttura e collocazione 
dei programmi basic 

Ogni volta che immettiamo una linea basic. 

11 computer la memorizza iti una zona di me- 
moria che inizia alLindi rizzo 31 49 e può termi 
nure all’Indirizzo 40959. La prima hnca è 
quindi posta a pan ire da 2049, Quando digi 
liairto LIST, tf computer esamina quella zona 


32 ■ Commodore Computer Club 


OLTRE IL BASIC 


di memoria Campando sul video ciò che in- 
contra . finché incontra Ire zeri consecutivi 
che indicano appunto la fine del program erta. 
Nel caso che le locazioni 2040, 2050 c 2(15 1 
contengano propria tre zen. vuoi dire che non 
e ‘è programma in memoria e periamo appare 
solo READY ( Figura 3). E‘ ovvio che i ire 
/eri ili seguito li trascrive il computer tulle le 
volle che è necessario (aggiunta, modifica, 
cancella /ione di linee basic). 


Qualcosa di più sui LOAD e sul SAVE 

In genere . quando leggiamo un programma 
da nastro (LOÀD 'NOME 1 ') o da disco 
(LO AD "NQMET8), esso viene canea tu au- 
tomaticamente a partire da 2(49 (caso del 
C-64 1 presupponendo che sia un programma 
in basic anche se in effetti era staio registrata 
da una zona di memoria diversa da quella 
adibita ai programmi basic 

Se noi digitiamo LOAD ' NOME ’.Lf o 
LOAD "NOME “,8,1 il programma si cari- 
cherà esattamente nella zona di memo™ da 
dove era sialo prelevato. 

<..'è anche un caso, utilizzato dalla routine 
AUTOSTART > per cui. anche digitando 
LOAD "nome” senza porre il "JJ" finale, il 
programma si caricherà a partire dalla stessa 
locazione da dove era stato registralo. Pur- 
troppo ciò non vale per il drive, che ha biso- 
gno del "*8,1 " per caricare un programma 
senza rilocarlo. 

Per salvare programmi in basic, basta il 
SAVE "NOME” (con il solilo “,8” finale per 
il drive), che salva il nostro programma inco- 
minciando da 2049. 

Cì sono diverse tecniche per regi si race le- 
zioni di memoria che iniziano in locazioni di- 
verse dalia 2049, ma ta descrizione di queste 
esulano dallo scopo de [Punico lo. Ci basti sa- 
pere che il programma AUTO START usu- 
fruirà proprio di una di tali tecniche per regi- 
strare una piccola parte di memoria diversa da 
quella abitualmente dedicata ai programmi 
hasic. 


D esenzione e funzionamento del 

programma 

Tra le murine de! basic vettori zzate riuura 
fa WARM START ROUTINE, che è quella 
che il sistema esegue quando stampa REA- 
DY (per brevità ROUTINE READY) Per- 
iamo. quando il basic del 64 visualizza REA- 
DY. vuol dire che è stala utilizzala questa 
routine, la quale ha il suo vettore in 770 e 771 
Il valore di questo puntatore, calcolato con il 
solilo metodo: 

PRlNTPEEK(771) f 25h + PEEK(770) 
è uguale 3 42! 15, numero corrispondente alla 
locazione d'inizio della mutine READY. 

Modificheremo questo puntatore in mudo 
che indirizzi ad una routine in LM scritta da 
noi. Onesta, ad esempio, avrà il compito di 
"forzare” i codici di ' 64" nel buffer di tastie 
tu, ottenendo, come risultalo, che ogni valla 
che il computer eseguirà la routine READY, 
comparirà il numero “64”. 

Possiamo notare che il READY appare an- 
che dopo il caricamento di un programma; 
pertanto per realizzare il nostro Ali TO- 
STAR! dovremo scrivere urta routine in 
L,M, che forzi net buffer di tastiera il coman- 
do RUM + Return dopo aver letto il program- 
ma in basic e modificare il vettore di READY 
in modo che punti alla routine sopragiiata. 
Scriveremo questa routine in una zona di me- 
moria libera che va dalla locazione 679 alla 
767, proprio al di sotto della tabella dei vettori 
(figura 4), 

Si tratta, dunque, di registrare due pro- 
grammi iti successione sullo stesso nastro 

Tutto ciò potrebbe essere facilmente raggi- 
rato do chi desideri copiare njo modificare il 
nostro programma; basterebbe infatti leggere 
solo d secondo programma. Per impedire che 
ciò avvenga, dovremo utilizzare due tecniche 
di protezione, la prima delle quali disabilita il 
tasto RUN/5TQP e la funzione LIST fchc si 
ottiene ponendo il valore 227 nella locazione 
808) mentre la seconda mette a nero = bytes 
che vanno da 2049 a 2(359 facendo in modo 
che. anche legge ndo solo il secondo program 


Figura 2 


IL VETTORE 


Locazione 

Contenuto 


Indirizzo 

769 

227 

x 256 = 

50112 

768 

184 

x 1 - 

184 



TOTALE = 

68296 


OPERAZIONE INVERSA 

58296:256 = 227.71875 da cut 227 

.71875*256 = 164 da cut 184 


Figura 3 


IL PROGRAMMA BASIC 


Contenuto 

Indirizzo 

0 

2048 

77 ? 

j a d 

2049 

??? 

2050 

777 

«Il 

Fine programma 

0 

„ " “ + 1 

0 

*' " 4-2 

0 

*' +3 


ma, rum sia né li stabile rie eseguibile Ricor- 
diamo, infatti, che quando i bytes 2849.21150 e 
2051 sono posti a /ero. it basic "crede” che 
non vi sin alcun programma in memoria . 

Riorganizziamo le idee e descriviamo, pas- 
so passo, il fu nzì ima mento de ila routine AU- 
TOSTAR t una volta caricalo in memoria il 
programma basic che si intende proteggere ; 

M Riporta nella zona di memoria che va da 
679 a 689 \ byte* che vanno da 21749 a 2059 
(cioè i primi dieci byte della parte iniziale del 
programma basici azzerando questi ultimi; 
lì trasferisce la routine LOADER nella me- 
morili che va da 69U a 707 ( il t unzioni! mento 
. ddb stessa verrà spiegalo piti avanti); 

.V modifica il vettore di READY facendo in 
modo che punti alla routine LOADER (fin- 
di rizzo di LOADER è 690, pertanto pone 2 in 
771 e 178 in 770); 

4/ salva la zona di memoria compresa ira 679 
e 771; nel caso losco utilizzato il nastro, h 
registrazione sarà ef fettunta in maniera cale 
che, anche omettendo il “.1.1” dopo il 
LOÀD. la routine si posizioni automatica- 
mente nella zona da cui ora stala prelevata 

Compiute queste operazioni, non ci resta 
che registrare con un normale SAVE il nostro 
programma proietto. 

Vediamo ora che cosa succede quando si 
carica un programma protetto con la tecnica 
dell’ AUTOSTART 

Dando il LOAD, d 64 carica ri programma 
che incontra per primo sul nastro, vale 3 dira il 
LOADER. nella zona di memoria che si 
estende da Ila locazione 674 alla 77L Termina- 
ta la lettura, il computer “vorrebbe” eseguire 
la routine READY cercandone l'inizio nel 
vettore 770-771. Questo però, dopo il carica- 
mento. non vale più 42115. mabyiL cioè pro- 
prio l'indirizzo della nostra routine L0A- 
DER. Una valla attivata, la routine per prima 
cosa legge i! programma protetto, poi rimerie 
"a pasto” i bytes 2049- 2059 prelevando i valo- 
ri originali dalle locazioni; cosi facen- 

do rende il programma basic periglia mente 
utilizzabile. 


Commodore Computer C^b - 33 



OLTRE IL BASIC 


Figura 4 

LA ROUTINE LOADER 


Dati BASIC 

679 


689 

Routine 

690 

in L,M. 

767 

178 

770 

2 

771 

184 

768 

227 

769 

Vettore READY (770/771 ) 
2x256+178=690 


Dopo aver eseguito queste operazioni, ri- 
mette il valore primitivo (42115) nel vettore di 
READY, pone 227 nella locazione 808. disa- 
bilitando il tasto Run?stop, e for/B nei buffer 
di tastiera il comando R UN + Return sa] lan- 
cio. infine, alla originale routine di RE ADY. 

Dopo l’cscciizione di tale routine, appare il 
famoso READY, ma, come spiegato prece- 
dentemente* il computer preleva gli eventuali 
caratteri presemi nel buffer di tastiera i quali 
Mino appunto “RUNT'-teRetum, In questo 
modo il programma basic sì avvia automatica - 
mente e non può essere più fermato, essendo 
inibito il tasto RUN/STOP 

Tutte le operazioni compiute dalla routine 
LOADER sono eseguile con una late fulmi- 
nei là da impedire a IT operatore di accorgersi 
di ciò che sta succedendo. 

Final mente, dopo le doverose premesse 
teoriche, passiamo ai fatti 


Come proleggere un programma 

Per prima cosa bisogna digitare il listato 
pubblicato in queste pagine, verificarne la 
corretta trascrizione e registrarlo, coi nome di 
“AUTOSTART'', su una cassetta o su un 
dischetto a pane, pre fe ri h il mente airmirio, 
in modo che sia di tacile reperibilità. I tei velo- 
cizzare la copiatura del listato, si possono tra- 
lasciare tutte le lìnee che iniziano con l'istru- 
zione REM o con ì due punti. Nella trascrizio- 
ne. bisogna porre particolare attenzione alle 
linee DATA; in ogni caso il programma si 
accorge da solo della presenza Jt eventuali 
errori in queste linee visualizzando l'apposito 
messaggio Per i lettori più esperti* il listato, 
opportunamente disasse mbiato, servirà come 
base per uno studio più approfondito della 
tecnica delLAUTOSTÀRT e per facilitare 
eventuali personalizzazioni. 

Benché superfluo, ricordiamo ai princi- 
pianti (che intendono utilizzare te tecnica di 
protezione senza studiarne il funziona mento) 
che devono limitarsi a digitare il programma 
basic e seguire le istruzioni fomite qui di 
seguito. 

Prima di descrivere te operazioni da fare 
per dotare di AUTOSTART un qualsiasi prò 
gramtna scritto in basic. £ bene fare alcune 
premesse: 

- Il programma basic pubblicato in queste pa- 
gine lo chiameremo “AUTCJSTÀRfL 

- Il programma che intendete proteggere de- 
ve essere registrato secondo le procedure nor- 
malissime (sul disco oppure nastro N.l) col 
nome "PROVA" o con altro nome di 
fantasia. 

- Il supporlo magnetico (disco o nastro) desti- 
nato ad ospitare il programma protetto (som- 
ma, in realtà, di due programmi) lo chiamere- 
mo Disco (Nastro) N.2 

Passiamo, ora. alla descrizione delle opera- 
zioni da compiere, e che sono le seguenti: 

1/ caricare (da disco o nastro) la routine 
AUTOSTART; 

21 dare il RUN e T alla domanda NASTRO O 
DISCO?”, rispondere con "N” oppure "D” a 
seconda del supporto su cui desideriamo regi- 
strare il programma protetto, non dimenìi 
cando dì premere il tasto Return, 


V caricare (dalla unità nastro o disco selezio- 
nata) il programma "PROVA" che si vuole 
proteggere. Chi utilizza il drive dovrà scrivere 
il nome per intero (se. ad esempio, il pro- 
gramma da proteggere si chiama "PROVA”, 
si deve leggere con LO AD ‘"PROVA”, 8 e 
NON con LOAD 'TRO*'\8); 

4/ inserire il nastro (o il discheito) N-2. e digi- 
tare SYS 49132+Retum per provocare la re- 
gistrazione del LOADER; 

5/ attendere la fine della registrazione e, se si 
usa il registratore, riavvolgere il nastro di 3 
giri (porre la massima attenzione nel compie- 
re questa operazione). In qualunque caso non 
cambiare il supporto (che è ancora il N .2); 

6/ quando compare il READY che indica il 
termine della registrazione del LOADER, di- 
gitare, senza cambiare il supporto magnetico, 
il comando SAVE TROVA” (+“,8 T * se sì 
usa il drive) e premere il tastaRetum* Il nome 
del programma da proteggere dovrà essere 
uguale al titolo originale tranne il primo carat- 
tere che deve essere il carattere "I” (ceco 
perchè il nome "PROVA” diventa ‘TRO- 
VA”. Pertanto bisognerà digitare SA VE 
♦TROVA T oppure SAVE "IRQ VA ’, 8 nel 
caso del disco). 

Dopo aver effettuato la registrazione de- 
scritta al punto 6, il gioco è fatto e per verifica- 
re la correttezza della procedura, ravvolgere 
il nastro (al disco non serve!) e caricare il 
programma con LO AD f registratore) oppu re 
LOAD ,l PROVA’\fiJ (disco) 

Ora non dobbiamo far altro che attendere: 
Il primo programma, partendo automatica- 
mente* caricherà il secondo e, resolo esegui- 
bile, gli darà L"‘ irreversibile” RUN+Return. 
Se si usa il drive e si omette il " J “ finale* 
chiedendo il listato si otterrà una fila di carat- 
teri insignificanti, Agli utilizzatori del regi- 
stratore, giustamente preoccupati dal fatto 
che ri avvolgendo il nastro di tre giri ri possa 
cancellare il LQADER, diciamo che quesriul- 
limo è sa baio in appena sette giri, ma Finrichè 
smettere di registrate, il 64 continua per un 
po' ad inviare al nastro caratteri privi di senso 
che potrebbero com promettere II buon fine 
della procedura e che pertanto devono essere 
eliminati 


Considerazioni 



L'articolo contiene vari spunti di esercizio 
per il principiente (buffer di tastiera) e per 
l'esperto (gestione direna delte registrazione 
e della lettura del programmi in L.M.), non- 
ché una più generale inquadratura schematica 
de! funzionamento del 64. 

I primi potrebbero, per esempio, cercare il 
modo di scrivere un programma in basic che. 
terminando, carichi un altro programma uti- 
lizzando appunto la tecnica del huffer di ta- 
si Sera; i secondi potrebbero individuare un'ul- 
tra tecnica di AUTOSTART (si pensi allo 
staci: del 65 li) c al modo di funzionare delle 
Istruzioni RTS e RTI ) I! mainiate non 
manca, il computer nemmeno, bisogna solo 
dotarsi dì buona volontà e iniziare a provaree 
riprovare. 


34 - Commodore Campai ?r Club 






3 REM PROTEZIONE CON 

4 REM SISTEMA DI AUTOSTART. 

5 : 

6 REM DI PASQUALE D’ANDRETI 

7 REM RIARDO (CE) 

e : 

9 G$=CHR$(34 ) : PR INTCHR$< 147 ATT 
ENDERE " 

11 REM "*** LETTURA DATA E FEMORI 
ZZAZIONE L-M. 

15 FOR I = 4S15E TO 433 1G: REA 
D A: B=B+A : POKE I,As NEXT 
20 IF B = 19763 THEN 50 
30 PRINT^ERRORE NEI OATfls" 

40 PRINT "RIVEDERE IL LISTATO-": 
END 

50 PR I NT "NASTRO 0 DISCO (N/D)" 

55 6ET ME*:IF " " THEN 55 

6© IF M£$<>"N B AND l*E$<>"D" T 
HEN 55 

70 IF ME$= "N" THEN "NASTRO 

":60T0 90 
7E ME$- "DI SCO “ 

77 REM *** MODIFICA NUMERO PER IF 
ERICA E INDIRIZZO 

78 REM *** SECONDARIO SE SI USA 
IL DRIVE 

80 PQKE 48SS3 ,8 • POKE 43BE5 , 1 ! 
POKE 43242,8 

87 : 

88 REM *** ISTRUZIONI 

89 : 

90 PRINT CHR$( I 47 ) "ORA CARICA IL 
TUO PROGRAMMA, PREPARA IL "ME 

10© PRINT " (DIFFERENTE DA QUELLO 

a ■ « 

/ 

110 PRINT "ORIGINALE) , DIGITA SY 
S 43152 + RETURN") 

120 PRINT " E ASPETTA CHE LA ROU 
TINE VI REGISTRI"; 

130 PRINT ■ L' AUTOSTART- QUINDI DE 
VI"; 

135 IF ME$- * D ISCO " THEN 150 
140 PRINT " DEVI RI AVVOLGERE IL NA 
STRO DI 3 GIRI E ■; 

150 PRINT "DARE IL SA VE IN MODO CH 


E IL NOME SIA UGUALE A QUELLO 

i» ■ 

JE0 PRINT "USATO PER LEGGERLO TRAN 
NE IL PRIMO CA"; 

170 PRINT "RATTERE , CHE DEVE ESSER 
E UN “CHR*<34 ) " 1 "CHR*(34 ) " . " 
130 PRINT"AD ESEMPIO, SE HAI CARIC 
ATO IL PROGRAMMA"; 

190 PRINT "ORIGINALE CON LOAD "QS 
"TEST"Q*", ORA DOVRAI"; 

192 PRINT "SALVARLO CON SAVE "Q*"l 
EST'Q**. " 

193 PRINT! PRINT "LOAD "Q*"T -VE 

CCHIO “ht* 

194 PR INT! PR INT "SYS 49152 -NUOVO 

"ME*! PR INT: PR INT“SAVE "Q* " 1 . , . 
. -NUOVO "ME* 

195 REM *** 

197 REM "*** CODICI COSTITUENTI IL 
L,M, 

193 REM *** INIZIO = 49152: FINE= 
49316 

199 REM *** 

200 DATA 162,10,189,1,8,157,167,2, 
169,3,157,1 ,8,202,16,242 

210 DATA 162,77,189,97,192,157,178 
,2,202,16,247, 169,178, 141 ,2,3 
220 DATA 169,2,141,3,3,32,68,192,1 
69,2,133,254 , 169,167,133,253 
230 DATA 169,253,162,4,160,3,32,21 
6,255,169,164, 141,3,3,163,131 
240 DATA 141,2,3,96,169,1,162,1,16 
0,3,32, 186,255, 165, 183,166 
250 DATA 187,164,188,32,189,255,96 
,169,1 ,162,1,168,32,186,255,16 
0 

260 DATA 0,169,49,145,187,165,183, 
166,187,164,188,32,189,255,169 
,0 

270 DATA 32,213,255,134,45,132,46, 
162,18,189,167,2,157,1 ,8,202 
280 DATA 16,247,162,4,134,198,139, 
251,2,157,1 13,2,202,203,247,16 
9 

290 DATA 131,141,2,3,169,164,141,3 
,3,169,227,141,40,3,76,131 
300 DATA 164,147,62,117,13 


Commodore Computer Club - 35 









Probabilmente 

Star SG10C è la stampante ideale 
per Putente avanzato di Commodore 


che come te, 
vuole scrivere lettere, 
stampare tabulati, 
tracciare disegni... 


Totalmente compatìbile con il Commodore C64, 
alfanumerica e grafica, con f suoi 120 caratteri/ 
secondo SG 1GC è un punto d'arrivo per f 
possessori di Commodore C64, Grazie alia 
possibilità dì stampare anche caratteri near letter 
Ljuality (selezione possibile con la semplice 
pressione di un tasto), SG 1 OC può essere asservita 
al Tuo Commodore come una macchina da scrivere. 


CARATTERISTICHE TECNICHE 


:j Velocità di stampa di 120 caratteri/ 
secondo, bidirezionale e ottimizzata, 
monodi rezi orale in near lette r 
qualiiy c grafica. 


n Testina di stampa a 9 aghi, 
larghezza carta 80 colonne. 

o Matrice di stampa: 8x1 1 (standard), 
8x6 (grafica a blocchi), 7x60 punti 
per pollice (grafica bit irnage), 17x11 
(carattere definibile), 

_ Stampa in normale ( 1 0 CP I), 
condensato [17CPl}, NLQ (10 CPS), 
espanso (2, 3 o 4 volte), enfatizzato 
e italico. 


□ Alimentazione carta a moduli 
continui (trattore) e fogli singoli 
(frizione). 


r Altre caratteristiche: segnalazione 
d'errore, caratteri definìbili 
dall'utente, autotest, near letter 
quality, spoil er per strappo carta, 
grafica e indirizzamento di singoli 
punti, dump esadecimale, 


□ Compatibile con tutti gli Home 
Commodore: VIC 20, C 1 6, C64, 
C 1 2S > Plus 4. 




il tutto velocemente e affidabilmente. 


DISTRIBUTORE PER L'ITALIA 


-HW- 




TJ 


StDE e UFF COMM . wg gaf tonte 2U-2QÌ5I m iter** 
f et {02} 30 f. 00. Si - 301.00. 91 {8 lime rk. eur.) 

Telex n , 313843 CLAMI 


Inviacii questo coupon, 
ti segnaleremo il nome 
e l'indù t//o di 
un rivenditore della tua 
zona che ti potrà 
mostrare la campante 
Star SG10 C pei il tuo 

Corri modulo, ma 

ATTENZIONE! 

Se dee i dorai di 
acquistare Star SG10 C 
l' invio dei coupon 
lì darà il diritto ad uno 
SCONTO DEL Wl 




GRAFICA 


Ricorsività e merletti 

in Basic: 

di Durilo Toma 

Una diabolica microprocedura 
BASIC per creare velocemente disegni stupefacenti! 

“Provare per credere ...” 



Creazione di una curva di Peano 

Nella figura sono evidenziati 1 primi quattro ordini deila procedura che applicata 
a N 1 infinito, fa tendere la figura ad una curva di Peano. 


Coma 
procurarsi 
le routine grafiche 

\ nuovi lettori di Commodore Computer 
Club torse non sono a conoscerla del 
fatto che la nostra rivista ha pubblicato 
tempo fa (esaltarne n te i$ul N.14) un pro- 
gramma in linguaggio macchina che ag- 
giunge nuove, potenti istruzioni BASIC al 
C-64 

Queste routine, esclusivamente grafi- 
che.. consentono di disegnare in tre di- 
mensioni in alta risoluzione. 

Djgitare il programma è piuttosto lungo 
e pericoloso e pertanto sconsigliamo, ai 
lettori inesperti, la sua digitazione. 

Per venire incontro alle loro esigenze, 
tuttavia, la Systems Editoriale invia su ri- 
chiesta. in cassetta, le routine grafiche 
insieme a tutti i programmi pubblicati sul 
M.14diCC.C. 

Per avere la cassetta è sufficente invia- 
re la modica cifra di 5800 (cinquemila ot- 
tocento) lire indicando, owsa mente, sia il 
numero di C.C.C desiderato Sia il vostro 
nominativo completo. Non si effettuano 
spedizioni contrassegno 

SYSTEMS EDITORIALE 
Servizio arretrati 
Viale Famagosta 75 
20 142 MILANO 


Commodore Computer Club - 37 




GRAFICA 


jAivete mai sentito parlata delle curva 
di Peano? La maggior pane di voi sicura- 
mente no* a meno che non siate degli 
appassionati di matematica. 

Neppure io le conoscevo, fino a quan 
do lessi un articolo dedicato a tale 
argomento. 

La curiosità mi spinse a realizzare un 
programma che potesse disegnare alcune 
di queste curve, per due motivi: volevo 
constatare personalmente la spettacola- 
rità di tali "mostruosità'' matematiche l\ 
soprattutto, mi stuzzicava la dichiarata 
impossibilità dì implementare tali proce- 
dure in BASIC. 


Per capire meglio la spiegazione che 
seguirà guardate la figura "creazione di 
una curva di Peano", nella quale sono 
illustrati i risultati dei van passaggi. 

Immaginiamo di partire da un segmen- 
to (ordine 0) e dì applicare a questo una 
trasformazione "quadrata" nel centro. 

Cancelliamo, cioè, il terzo centrale del 
segmento e lo sostituiamo con un qua- 
dralo di cui non tracciamo il lato inferio- 
re (ordine 1). 

Consideriamo ora ognuno dei 5 seg- 
menti risultanti e su ciascuno applichia- 
mo la stessa trasformazione (ordine 2). 

Ripetiamo l'operazione sui 25 lati ri- 


fH 



Provate a digitare una tema dei seguenti valori riportati in tabella Stupende 
figure geometriche verranno riprodotte sullo schermo del vostro TV, Come 
esercizio, provate a indovinare quale terna di valori dà origine alla fig. H, poi 
inviateci la soluzione. 


Tipo N. curve Ordine 


A 

B 

C 

0 

E 

F 

G 

H 

I 

L 



Ecco alcuni esempi di figure {contraddistinte da lettere detrattatelo) che potete 
realizzare coi programma di queste pagine. Alcune sembrano dei veri e propri 
flocchi dì neve!! 



Infatti le curve di Peano richiedono, 
per la loro costruzione, l'utilizzo di tecni- 
che ricorsive che non sono prerogativa 
del BASIC. 

Nonostante ciò potrete constatare, 
guardando le curve realizzate, che anche 
con tale linguaggio si possono simulare 
tali procedure, anche se non all'infinito, 
e quindi realizzare spettacolari "merlet- 
ti" matematici 

Una doverosa precisazione: per dise- 
gnare le curve è indispensabile caricare 
ed attivare le Routine Grafiche pubblica- 
te suIN.WdiC.CC. 


Gerarchie 

Vediamo ora la logica di costruzione 
della famiglia di curve prese in consi- 
derazione. 


sudanti (ordine 3) e poi sui 125 nuovi e 
sempre più piccoli segmenti (ordine 4). 

Applicando questo procedimento al- 
l'Infinito si ottiene una curva di Peano. 

Facile vero? Il problema però è imple- 
mentare tale algoritmo in BASIC, 

Stabilire la lunghezza del lato dell'en- 
nesimo ordine è banale: se LO è il lato di 
ordine 0, L=UV(3f N). 

Le difficoltà nascono riguardo alla di- 
rezione in cui deve procedere il nostro 
cursore ideale. 

Nel primo ordine non ci sono proble- 
mi: ipotizzando che parta da sinistra do- 
vrà prima "girare" a sinistra (S). quindi 
due volte a destra (Di ed infine a sinistra 
(S): 

Sequenza l— (ST3-D-S) 

Nel secondo ordine si ripeterà la se- 
quenza l per ognuno dei 5 lati e quindi, 



38 - Comm onore Computer Club 


GRAFICA 


D 




n 

«> r 

V ' J 


% 


vrff ■* ’ - 

* - V 

» ' -v, 

J(él 

v k 


*■,*.}* 

.V] W 


' 'r-j V - 


=v 


rJ ^ 

>W?> 

[J 


V 


« 




** -^sv 

■». ■ 

43 1 

4'' ^ 

tV','- 


' ' S *-_ U ’-j 
ly-V». t* 


sempre partendo dulL'e&tremo sinistro, il 
percorso sarà: 

Sequenza 2— (sequenza 1 )-S-{sequenza 
t)-D-( sequenza l)-D-($equenza 1}-S 

Avrete notato che la nuova sequenza è 
simile alla prima! 

Si procede di questo passo all'infinito: 
Sequenza N— {sequenza N-lbS- 
(sequenza N-l)-D-(sequenza N-lJ-D- 
{ sequenza N-1J-S 

in cui ogni sequenza è determinata dalla 
precedente c a sua volta determina la 
successiva 

Per riuscire a sapere in ogni momento 
in quale direzione procedere occorre (se- 
condo la soluzione da me individuata) 
avere un indice per ogni sequenza (dalla 
sequenza N alla sequenza I) che segnali 
quale sarà la mossa successiva. 



Per aiutarvi a capire, prendiamo come 
esempio la numerazione decimale. 

Ad ogni cifra da urto a nove possiamo 
associare una direzione, che chiamerò 
mo (D1)..TD9), ottenendo una sequen- 
za sìmile a quelle illustrate pre- 
cedentemente. 

Vogliamo, partendo per esempio dal 
numero 000, arrivare a 999 passando da 
tutti i numeri intermedi. 

Incrementiamo te unità; da 001 fino a 
009 Ciò equivale ad eseguire la serie ds 
rotazioni predeterminata. 

Se ad ogni rotazione facciamo seguire 
un avanzamento otterremo un percorso 

Incrementiamo ancora: arriviamo a 
010, cioè otteniamo ancora una rotazio- 
ne di tipo (DI) e un ulteriore avanza- 
mento. 

Riprendiamo ad incrementare: da t J 1 1 
a 019. ottenendo un nuovo percorso. 

Il passo successivo porterà il numero a 
020 con relativa rotazione (D2) e 
avanzamento. 

Si procede in questo modo lino a 099. 
À questo punto appare oramai chiaro 
che si sono percorse dieci sequenze di 
'"unità" e si è completata una sequenza di 
"decine" 

Coti un ulteriore incremento arrivia- 
mo a IfNji cioè iniziamo, con IDI), la 
sequenza delle "centinaia \ 

Quindi ricominciamo a procedere nd 
modo descritto. 

Arrivati a 999 avremo completato 
10|2=1UCI sequenze disunita 1011=10 
sequenze di “decine "c I0|d=l sequenze 
di "‘centinaia". 

Ma, ciò che più conta, avremo percor- 
so una dannata curva ricorsi iva di ordine 
3. 



In questo caso 1 tre indici che hanno 
permesso di sapere in ogni momento la 
mossa da effettuare, sono stati le unità, 
le decine e le centinaia 

Possiamo però ricorrere anche agli 
dementi di un vettore, cosi da non essere 
limitati a sequenze composte da nove 
movimenti. 

Spero che quanto detto sta risultato 
comprensibile, ma se avete difficoltà, n 
costruite il percorso con carta e matita e 
vedrete che risulterà più chiaro 

In ogni caso, per ottenere disegni co- 
me quelli presentati nelle figure non è 
necessario sapere come funziona la 
procedura. 


Il programma 

Permetterà di creare curve diverse ma 
basate tutte sullo stesso principio base 
illustrato. 

Ricordate, prima di farlo girare, di ca- 
ricare Se Routine Grafiche del N. 14 di 
CX . C. senza le quali non può funzio- 
nare, 

Dato il RUN vi verrà chiesto di specifi- 
care 3 informazioni. 

1/ Tipo dì trasformazione: potete sce- 
gliere dal triangolo al decagono. Digitale 
quindi la cifra corrispondente al numero 
di lati (da 3 a III). Volendo trasformazio- 
ni con poligoni di 1 1 o più fati basta inse- 
rire la linea 
205 DIM D(nn) 

dove nn è il numero massimo di lari 
consentiti. 


Commodore Computer Club - 39 


H 


GRAFICA 



2 j Numero di curve; per ottenere delie 
figure chiuse occorre unire tra loro più 
curve uguali, quindi risponde con un nu- 
mero da 3 iti su. Potete anche superare il 
limite di 10 ma, generalmente, non si 
ottengono disegni molto belli con più di 8 
curve, 

3/ Numero d'ordine: per ultimo va speci- 
ficato quante volte va applicata la tra- 
sformazione e ciò, come avrete appreso 
leggendo l'articolo. viene determinato 
datfordìne delta rico resone. Più grande è 
H numero che impostate, più intricata 
sarà la curva ma più tempo occorrerà per 
disegnarla. Valori consentiti tra U e 10, 
Anche in questo caso si può aumentare il 
limite dimensionando il vettore O(nn), 
Comunque, data la risoluzione di 
320*200 de fio schermo, è inutile spinger- 
si oltre il quinto o il sesto ordine 


I 



Le tre informazioni vanno separate 
dalla virgola. 

Quindi battete RETURN e inizierà la 
'creazione'’. 

Quando il disegno sarà terminato il 
programma si fermerà per consentirvi di 
ammirare il risultato e aspetterà che pre- 
miate un tasto. Chiederà quindi se volete 
creare un'altra curva. 

Nelle didascalie delle figure pubblica- 
te sono indicati gli input che hanno gene- 
ralo le relative curve: potranno servirvi 
da esempio e per controllare che il pro- 
gramma funzioni regolarmente. 

Se avete una routine di hard -copy 
adatta alla vostra stampante, potete inse- 
rirla nel listato e fare stampare le figure 
più belle. 

A questo proposito ricordo che sul nu- 
mero 18 di C.CC ne è stala pubblicala 
una per la MPS 802, mentre sul numero 
10 di Commodore potete trovare quella 
per la MPS 801. 


Casi particolari 

Alcune realizzazioni potranno eccede- 
re i limbi di schermo nonostante la para- 
rne t rizza zio ne della lunghezza del lato 
base. 

In tal caso, modificate nella linea 330 il 
valore 199 (diminuendolo). 

Nella lìnea 320 invece sono definite le 
coordinate del punto da cui comincia ìt 
disegno e l'orientamento iniziale del 
"‘cursore" (dipendente dal numero di 
curve dà tracciare). 

Volendo ottenere figure diverse (con 
trasformazione "esterna” anziché "in- 
terna") eliminate il segno meno nell'i- 
struzione GR=-2* / P (lìnea 250), 

Nel vettore DQ vengono conservali gli 
angoli di rotazione della sequenza di tra- 
sformazione (linee 260-300). Il primo e 
l’ultimo sono sempre uguali e di segno 
opposto agli intermedi. La somma totale 
deve essere pari a zero, così da poter 
ritornare alla direzione iniziale alla fine 
dì ogni sequenza . 

Il resto del breve listato che fa da con- 
torno alla routine principale è facilmente 
comprensibile quindi £ superfluo 
pa darne. 

La parte più ostica va dalla lìnea 590 
alfa linea 64(1 ed implementa l’algoritmo 
che ho cercato di spiegare con l'esempio 
dei numeri decimali. 

Qui al posto di unità, decine, eec., 
abbiamo 0(1), 0(2), eec. 



P (tipo di trasformazione) determina 
quando una sequenza è stata completata 
e bisogna passare al punto successivo di 
quella di ordine superiore. 

Dalla linea 660 alla linea 6% troviamo 
la routine che fa avanzare il cursore nella 
direzione predeterminata. 

Spero con ciò di avere spiegato tutto e 
dì non avere detto qualche assurdità par- 
lando di curve a me quasi sconosciute. 

In caso contrario godetevi il program- 
ma che, come direbbero i cinesi, vale più 
di mille parole. 


Attenzione?!! 

Al lettore che per primo invierà i tre para- 
metri che consentono dì disegnare la figu- 
ra che in queste pagine è contrassegnata 
con la lettera "HT, la Redazione invierà 
gratuitamente un pacco contenente libri, 
arretrali delle riviste, eccetera 
Ricordatevi di indicare chiaramente, ol- 
tre ai tra parametri richiesti, il vostro nome 
cognome ed indirizzo, 

SYSTEMS EDITORIALE 
Commodore Computer Club 
Rubrica "Curve di Peano" 

Viale Famagosta, 75 
20142 MILANO 



40 ■ Commodore Computer Club 



100 REM GRAFICA PER COMMODORE 64 
1 10 : 

120 REM CURVE DI PEANO 
130 : 

140 REM "CARICARE ROUTINE GRAFICHE 
150 REM PUBBLICATE SUL N.14 DI C.C.C. 

160 ! 

170 REM SOFTWARE DI DANILO TOMA 
180 ; 

130 FRINTCHRS C 147) 

260 POKE53230 ,8 

210 PRINT-TIPO DI TRASF*, N* DI CURVE, N* D'ORDINE" 

220 INPUTP ,S ,N 
230 PRINT 

240 IFW-0THENM-CLEAR:W“I 
245 M3RAF6, ! ^COLORI 
250 GR= ^2 * /P s R = ~2*«f/S 
260 FOR I =2TOP - 1 
270 DC I >=-GR 
280 NEXT 

290 Dii )=GR*(P-2>/2 
300 0 ( P ) =D C 1 ) 

310 ; 

320 X]=0;Yl-99sAN=R/£+tf 
330 L- 199*S INCR/2 )/3 tN 
340 5 

350 FOR I = 1 TOS i REM NUMERO DI CURVE 
360 i 

370 FORK= 1 TON 

380 0 (K ) =0 ‘ REM INIZ1ALIZZA INDICI 
390 NEXT 
400 : 

410 GOSUB660 : REM ELABORA 
420 : 

430 AN=AN+R i REM DIREZIONE DEL 
440 NEXT : REM PROSSIMO LATO 
450 ! 

460 REM PREMI UN TASTO 
470 LIA 3 T 198 , 1 : GETAS 
480 : 

490 4TEXT6,14 

500 PR I NT* ANCORA ? <S/N) ■ 

510 UJAIT198, 1 :GETA$ 

520 IFA$“ "N"THEhtMD 

530 FRI NT "CANCELLO SCHERMO H I -RES? <S/N> 11 : LIA IT 193 , I : 6ETA$ 
540 W-01 IFAS- rt N*THENLJ- i 
550 GOTO260 

560 REM ELABORA E DISEGNA 
570 REM LA CURVA 
580 : 

590 K=0 
600 K-K+l 

610 IFK)NTHEJSRETURN 

620 I FO < K ) =PTHENO < K > =0 S GOTO600 

830 0(K)^0<K)+1 

84 0 AN=AN*DCQOO) 

660 X2=X 1 +COS < AN> *L 
670 Y2=Y1+SIN(AN)*L 
680 H3RAL1X 1 , Y 1 ,0 ,X£ , Y£ ,0 
630 X 1 =X2 S Y 1 = Y2 
700 GOTO590 


Commodore Computer Ciuò ■ 41 




DIDATTICA 

COMMODORE 64 E PROGRAMMI E.LI.ANA 


Imparando ad imparare 

Una stellina 
passo dopo passo 

di IL Matturm Si M. L* Nitti 


In quest ultima 
puntata impariamo a 
verificare un 
programma di 
E.Li.Ana., e a far 
prendere decisioni 
alia coccinella. 


SI 

U pesso e volentieri restiamo perplessi 
dopo aver eseguito il nostro programma, 
perche non abbiamo ottenuto quello che 
realmente volevamo. Dopo aver dato il 
comando ESEGUI , ei ritroviamo a vede- 
re sullo schermo la coccinella che si muo- 
ve in un modo che non ci sembra “giu- 
sto’ (ma questo calcolatore non capisce 
proprio niente ?!) oppure vediamo risul- 
tali numerici che non ci soddisfano. Que- 
sto chiaramente pub succedere con qual- 
siasi linguaggio. In termine tecnico, l’o- 
perazione di verifica di un programma si 
chiama “debug’ 1 , À seconda del tipo di 
calcolatore usato c dei tipo di linguaggio, 
esistono programmi più o meno sofistica- 
li per compiere questa operazione. 

Per poter capire più facilmente dove 
abbiamo sbaglialo, E. Li, Aita cì viene in 
aiuto con ìl comando diretto: 

PASSO-PASSO 

Mediante questo comando, impartito 
prima dell’esecuzione, vedremo nella 
parte più alta dello schermo l’istruzione 
che in quel momento viene eseguita. Per 
continuare nel lavoro, sarà necessario 
premere ogni volta la barra spaziatrice. 
In questo modo si puri osservare lo scher- 
mo quanto tempo si desidera, e indivi- 
duare quindi molto chiaramente quale 
passo" o linea di programma, dà luogo 
a risultati indesiderati, 

Per utilizzare tale possibilità dovrete 
quindi, una volta scritto il programma, 
dare il comando PASSO-PASSO seguito 
da ESEGUI, Per interrompere questa 
particolare esecuzione e tornare alla pa- 
gina di QUADERNO, basta premere il 
tasto R UN/STOP. 


Immaginate di voler disegnare una 
stellina Come si può procedere? 

Scriviamo anzitutto le lìnee che per- 
mettono di disegnare una punta di lun- 
ghezza L: 

10 ALBUM 
15 CESTINO 
20 MATITA 
25 VARIABILE L= 10 
200 AVANTI L 
210 DESTRA 30 
220 INDIETRO L 
230 FINE 

Diamo ora i due comandi PASSO- 
P ASSO e ESEGUI. Osservato il risulta- 
to sullo schermo, vediamo che è necessa- 
rio far voltare a sinistra la coccinella per 
disegnare una seconda punta 

Aggiungiamo perciò: 


30 SOTTOPROGRAMMA 300;2 
100 LINEA 100 

300 SOTTOPROGRAMMA 200:1 
310 SINISTRA 90 
320 TORNA 

modificando la linea 230 in 
23fi TORNA 

In questo modo usiamo le linee 200- 
230 come sottoprogramma che genera 
una punta, la linea 300 come sottopro- 
gramma che genera la punta e h rotazio- 
ne in vista della punta successiva. 

Ora è sufficiente dare il comando 
ESEGUI per avere l'opzione passo per 
passo, che rimane abilitata. Osservate 
che all a hne la linea IOTI rimane in esecu- 
zione finché non premete R UN/STOP 


200 0U0NTI < 



■*2 - Commodore Computer Club 




DIDATTICA 



anziché seguire una sola lìnea di condot- 
ta. E-Li.Àna, d propone per questo sco- 
po l'istruzione SE, che ha la seguente 
forma : 

(tinca) SE (condizione); 
ISTRUZIONE! 

(linea 

successiva) ISTRUZIONE^ 

TI risultato è il seguente; se la condizio- 
ne ò vera, si passa ad eseguire l'istruzione 
1 e poi in sequenza l'istruzione 2; se la 
condizione è falsa, l'Istruzione l non vie- 
ne eseguita. 

Vediamo un semplicissimo esempio, 
per calcolare il maggiore tra due numeri 
A e B: 


Benissimo! Tutto funziona. Ora perù, 
prima di fare la prova successiva, diamo 
il comando 

NORMALE 

per eliminare l'opzione PASSO- 
PASSO. Resta ora da capire con quante 
punte sarà completata la stellina. 

Proviamo a sostituire, nella linea 30, il 
parametro di chiamata 2 con il valore fr: 

30 SOTTOPROGRAMMA 3U0.6 

aggiungendo inoltre 

35 VOLA 
40 AVANTI 30 


20 MATITA 
25 VARIABILE L= 10 
30 SOTTOPROGRAMMA 300:6 
35 VOLA 
40 AVANTI 30 
100 LINEA 100 
200 AVANTI L 
210 DESTRA 30 
220 INDIETRO L 
230 TORNA 

’30fl SOTTO PROGRAMMA 200; 1 
310 SINISTRA 90 
320 TORNA 


Decisioni nel programma 

À volte scrivendo un programma s 
desidera poter prendere strade diverse. 


Massimo tra due numeri A , B 

10 QUADERNO 

15 VARIABILE B=10 

2U VARIABILE À=5 

25 VARIABILE M=A 

30 SE B>A; VARIABILE M=B 

35 SCRIVI IL MASSIMO TRA "A" 

E +, B" E" ' l M“ 

40 FINE 

La variabile M conterrà, alla fine del- 
l'esecuzione, il massimo tra A e B. Si 
assegna ad M il valore A (linea 25); se 
vale la condizione B>A .alia variabile M 
viene assegnato il valore B (linea 30), Nel 
caso in cui la condizione non sia vera, 
l'istruzione VARIABILE M = R non vie- 
ne eseguita e si passa direttamente alla 


per allontanare la coccinella dalla stelli- 
na e pmer vedere meglio l'effetto finale. 
Vedrete formarsi una stellina a sei punte 
proprio perfetta. Notate che, se nella li- 
nea 25 modificate iì valore di L, potrete 
disegnare stelle dì grandezza diversa. A 
questo punto potete sbizzarrirvi nella 
creazione di stelline più o meno grandi, 
ed anche con un numero diverso di pun- 
te, se modificate 1‘angolazione prodotta 
dalla linea 310. 

Ecco qui tl listato completo, per chi 
desidera vedere subito i] risultato senza 
seguire in dettaglio tutte le spiegazioni: 

Stellina a sei punì e 

10 ALBUM 
15 CESTINO 



Commùùore Computer Club - 43 






DIDATTICA 


stampa dei risultali. Nell’esempio, i valo- 
ri assegnati ad A e a B sono rispettiva* 
mente 5 c IO e il massimo risulta essere B , 
Provate ad eseguire il programma con 
valori differenti. 

p 

Vediamo ora un esempio un po' più 
complicato: il càlcolo della potenza N di 
un numero intero positivo A. liceo il 
listato: 

Potenza N-ESIMA dì A 
10 QUADERNO 
15 VARIABILE A=3 
20 VARIABILE N=5 
25 VARIABILE F=l 
30 SCRIVI CALCOLO 
LA POTENZA 
■*N " DI “A” 

35 VARIABILE P=P + A 
40 VARIABILE N= N-l 
45 SE N— 0; LINEA 55 
50 LINE A 35 

55 SCRIVI IL RISULTATO E' “P” 

611 FINE 

Nella linea 35 viene eseguita, passo 
per passo, la potenza desiderata: ali ini- 
zio in Psi ha 1. poi A. poi A* A, eccetera; 
ogno volta ohe si esegue un prodotto, N 
viene deerementato di una unità. Nella 
linea 45 si controlla il valore di N ; se 
N>0 si torna alla 35 ad eseguire ancora 
un prodotto: quando N diventa 0, Tese- 
eruzione passa alla linea 55 e i! procedi- 
mento è concluso. 

In questo programmino, nelle linee 
35-50 è stato realizzato un "ciclo” o 
'loop"; una serie di istruzioni viene ese- 


guita un certo numero di volte (N in que* 
sto caso) finché si verifica una precisa 
condizione (nellesempio: N“ 0)e il ciclo 
è concluso. Per chi conosce il basic, la 
medesima struttura logica à realizzata 
con r istruzione FQR seguita daNEXT, 

La tela di Penelope 

Nella prima puntata di questa rubrica 
(n, 24 di C.C.CIub - ott,S5f abbiamo vi- 
sto. tra le istruzioni dì base per la cocci- 
nella, anche il comando GOMMA. Uri- 
ti/zabiìc da programma, questo coman- 
do ordina alla coccinella dì cancellare, 
d’ora in avanti, tutte Ee linee già tracciale 
che incontrerà sul suo cammino. 

Ora vi proponiamo un semplice listato 
che mostra come, unendo l’uso di una 
variabile al l'uso dell ‘istruzione SE, si 
possa costringere la povera coccinella a 
disegnare e poi subito dopo cancellare la 
stellina, senza mai fermarsi. 

Disegna e cancella 

10 ALBUM 

15 CESTINO 

20 MATITA 

25 VARIABILE L— 20 

30 VARIABILE G=G 

35 SOTTOPROGRAMMA 300:6 

40 SE G— 0; LINEA 60 

50 MATITA 

55 LINEA 30 

60 VARIABILE G=1 

65 GOMMA 


70 LINE A 35 
100 LINEA 100 

(seguono le linee 200-32(1 del programma 
Stellina) 

L'idea fondamentale del programma 
sta nella definizione c modifica della va- 
riabile G. In pratica, esistono due Hl stati" 
della coccinella: stato G— (I, in cui dise- 
gna; stato G = l, in cui cancella. Gli siati 
vengono alternali, assegnando di conse- 
guenza la direttiva GOMMA o MATI- 
TA. Quesio procedimento può essere 
esteso ad altri usi. e opportunamente 
modificato. 

Per finire, vi lasciamo cog La proposta 
di realizzare un programmino che, utiliz- 
zando Formai sfruttai issi ma stellina a sei 
punte, costruisca nella pagina di album 
varie stelline con lati di Lunghezza diver- 
sa, eventualmente assegnali a caso. 


Termina, con questa puntata t fa "chiac- 
chierata 7 Bui corretto utilizzo de! pogrom- 
ma E. LIANA, pubblicato sulla rivista su 
cassetta Commodore Club edito dalla no- 
stra stessa casa editrice. 

Coloro che intendono procurarsi sia i 
fascicoli arretrati di C.C.C. che trattano 
questo argomento, sìa il nastro-cassetta 
contenente il linguaggio E. U.ANA. posso- 
no telefonare in redazione ( 02-8467348 ) 
per uletehon informazioni. 


Da Computer a Personal Computer 


La nuova nata della Systems si rivolge 
contemporaneamente agli utenti Com- 
modore, Sinclair ed MSX proponendo, 
in particolare, listati scritti nelle tre ver- 
sioni La collaborazione dei lettori esper- 
ii è gradita, appunto, per L adattamento 
di programmi "difficili” a lutte le 
macchine. 



Commodore Computer Club 



DIDATTICA 

VIC 20, C-64, C- 16, PLUS 4, C-128 


"Spaghetti Basic" 

Impanare 
a sbagliare 

di ArcssiirtdrD de Sinmn* 


Mei numero scorso avevamo proposto alcuni esercizi utili perfino per chi 
non possiede un calcolatore, 

Ci auguriamo che nel frattempo abbiate provveduto ad acquistare un 
Commodore e verificato Tesilo degli esercizi stessi. 

Riportiamo^ ad ogni buon conto, sia le domande che le soluzioni, 

N.B, fi simbolo (R) sta per ‘‘Premere il tasto Return ". 

Attenzione anche a non confondere il tasto alfabetico "O* 1 col tasto 
numerico zero (0). 


Ecco la seconda 
puntata su come 
affrontare il nuovo 
oggetto misterioso 
che è entrato (o sta 

per entrare) nella 
vostra casa: il 
computer , 
Commodore, 

naturalmente la 
terza ed ultima parte 
verrà pubblicata nel 
prossimo fascicolo. 




Commodore Computer Club - 45 



DIDATTICA 


Esercizio 


Soluzione 

PRINT 123 +233+45 

(R) 

40? 

PRINT 2 '(4+5/2) 

(R) 

13 

PRINT (5+7) * (0+3) 

(R) 

132 

PRINT SOR (16) 

(R) 

4 

PRINT 52 

(R) 

52 

PRINT 

(R) 

Rigo vuoto 

PRINT 5 SQR{2+7) 

(Ri 

5 3 


Problemi: 


* Calcolare l'area di un quadrato di lalotS: 

PRINT 8*8 (R) 

64 

* Calcolarne il perimetro: 

PRINT 4*8 (R) 

32 

« Area di un triangolo rettangolo isoscele con cateto— 10 

PRINT 10*10/2 (R) 

50 


• Calcolare ! 5 i poteri usa del triangolo precedente: 

PRINTSQR(10t2+l0T2)(R) 14.1421... 

• Calcolare la circonferenza di raggio 

10:PR1NT2'3. 1415*10 (R) 62.8318... 

m Calco! are l 1 area de I cerch io precedente: 

PRINT 3.1415*10*10 (R) 3141592,.. 

" Calcolare l'j.VA (18%) da pagare sulla cifra di 100000 

PRIM1 1 00000' 18/1 00 (R) ™000 


eseguito c che viene vis un li mito n! siiti 
posto il messaggio di errore: 


7SYNTAX RRROR 
READY 


Esaminiamo iti dettaglio ciò che è 
accaduto: 

1/ Quando abbiamo premuto il tasto dì 
ritorno carrello dopo aver battuto il tasto 
" + ". il computer ha cercato di “interpre- 
tare" ciò che avevamo digitato. 

Il primo carattere che incontra £ P se- 
guito da R,LN,T. La parola PRINT. che 
appartiene al “vocabolario" (elenco di 
parole chiave) in possesso del computer, 
rappresenta un preciso comando di 
stampa e significa esattamente: Prepa- 
rati a visualizzare sullo schermo del com- 
puter i dati, opportunamente elaborati, 
che tra breve incontrerai", 

2/ I caratteri presenti dopo PRINT so- 
no, nel caso esaminato, numerici (123). 
Il Sistema Operativo, a questo punto* sa 
che gli verrà tra breve richiesto di “trat- 
tare 11 il valore 123, Una conferma di ciò 1 
la trova ndl'interpretare il carattere suc- 
cessivo, al segno più (-K), e si predispone 
ad effettuare una somma con il valore 
numerico che. non ha dubbi, incontrerà 
tra breve, ma... 

3/ h .. sorpresa: il computer non trova 
alcun carattere e ne deduce, nella sua 
infinita sapienza, che l’operatore si è di- 
stratto o che gli ha voluto fare uno scher- 
zo, Nel dubbio, il calcolo non viene ese- 
guito c viene visual i//.ato un discretissi- 
mo messaggio di errore fortunatamente 
privo di imbarazzanti commenti sulle fa- 
coltà intellettive del l'utilizzato re, 


er usare con padronanza un qualsiasi 
oggetto è necessario utilizzarlo cercando 
all 'inizio di sbagliare a bella posta il piu 
spesso possibile in modo da individuare 
più facilmente, durante il suo uso norma- 
le, eventuali disfunzioni, L’esperienza 
accumulata in casi semplici sarà prezio- 
sissima per riconoscere inevitabili errori 
di battitura come pure incongruenze di 
calcolo. 

La stessa cosa vale |>ei chi legge queste 
pagine: proviamo a vedere che succede 
se digitiamo in modo errato i semplici 
comandi appresi finora. 


Invece di digitare: 

PRINT 123 + 456 (R) 
digitiamo: 

PRINT 123 + 

ed ovviamente il tasto Return { non di- 
menticate mai di premere Return altri- 
munti il Computer non può eseguire 
l'ordine). 

Notiamo con sorpresa che la somma 
(ma quale somma, del resto?) non è stata 


4/ A questo punto il computer, per non 
appesantire l’atmosfera, comunica che è 
pronto (READY,) ad accettare altri or- 
dini e fa lampeggiare il cursore come se 
nulla fosse accaduto, 

L'esperienza effettuata dimostra di- 
verse cose utili: 

* fi linguaggio usalo dal computer è un 
hnyiui^iif in/rr prette ( ió vuol dire dio 
quando chiediamo di eseguire un'opera- 
zione {servendoci, ripetiamo, del tasto 
Return), il Sistema Operativo legge ca- 


46 - Commodore Computer Club 



DIDATTICA 


T 


tinture per carattere l’ordine stesso c so- 
lo sr E alle i risulta in regola esso viene 
eseguilo. 

Se invece l'ordine richiesto non rispet- 
ta i canoni stabiliti, l'elaborazione incor- 
so viene interrotta ed tm messaggio viene 
emesso come avvertimento. Tocca all’o- 
pera torc indovinare il perche della se 
gnalaziorce c porvi rimedio, 

* Nulla puri essere sottinteso. In caso di 
somma di due addendi (= numeri da 
sommare ira loro) di cui uno nullo, que- 
sto deve essere esplicitamente indicato 
con 0 (attenzione a non confondere il 
tasto numerico /ero "0“ col tasto alfabe- 
tico "O"). Esempio: 

PRINT 123 + 0 (R) 
PRINT4'HJ+5-H)(R) 

Si ricorda che il segno della moltiplica- 
zione (per) nei calcolatori è sostituito 
da II asterisco ( *). Per moltiplicare 1(1 per 
2. ad esempio, si ricorre alla simbologia: 

PRINT 10*2. 

Commettiamo ora un altro errore: 
PRGNT 123 + 456 (R) 

Anche in questo caso viene emessa la 
stessa segnalazione di errore. Stavolta, 
però, gli addendi sono stati scritti in mo- 
do corretto. Errato è invece l'ordine 
(PRONT al posto di PRINT) che non 
viene ovviamente considerato esìstente 
nella tabella delle parole-chiave che i! 
computer ha, comunque, scrupolosa- 
mente esaminato dalla prima all'ultima. 

In conclusione è sufficiente un solo 
sbaglio nella battitura per fare apparire 
messaggi di errore. 

Alcuni computer (come il C16. il 
PLUS 4, il CT28) segnalano il punto esat- 
to in cui viene riscontrata ] ‘imprecisione 
facendo lampeggiare il comando che ha 
dato origine alla segnalazione, Il C64 cd 
il Vìe 20, purtroppo, non possiedono il 
tasto HELP che consente questa facilita- 
zione ed è quindi compito de 11’ utilizzato- 
re rintracciare t3 motivo della mancata 
esecuzione debordine 


Operazioni contemporanee 

Se vogliamo eseguire due somme non 
£ necessario eseguire prima 3 'una e poi 


l'altra. Le due richieste di calcolo posso- 
no essere poste sullo stesso rigo, a patto, 
ovviamente, di seguire alcune semplici 
regole dì "sintassi"’ (non dimentichiamo 
che stiamo utilizzando un linguaggio, il 
basic, dotato di regole sintattiche come 
qualsiasi altra lìngua), Nella maggior 
parte dei computer in commercio due 
ordini diversi sono accettati purché ven- 
gano separati dal carattere di doppio 
punto (:) r E' bene notare, quindi, che 
questo carattere, contrariamente a quan- 
to sembri a prima vista, assume un signi- 
ficato compiei a mente diverso da quello, 
comunemente noto, di "diviso" utilizza- 
to come sìmbolo della divisione. 

Esempio: 

PRINT 123+45ó:PRINT 789+122 (R) 

Questo modo di operare consente di 
risparmiare spazio sul video dei compu- 
ter oppure, in alcuni casi che esaminere- 
mo, di premere un minor numero di ta- 
sti, Si badi bene che talvolta a causa del 
numero limitato di caratteri per ciascuna 
riga, é probabile che, nel digitare più 
ordini concatenati, alcuni di essi risultino 
interrotti su di una riga di schermo c 
continuino SU quella successiva, come ad 
esempio (caso dei Vie 20):, 

f A 

; PRINT 123456 +7890: PR 

l INT 100 +478 (R) ■ 

\ _/ 

(Il primo rigo contiene 22 caratteri, 
compresi gii spazi, ed il secondo ì 
rimanenti). 

Nel caso invece di un computer da 40 
colonne come il Commodore 64, si può 
avere un'analoga difficoltà come nell'e- 
sempio che segue: 


PRINT 1234 + 5678: 

PRINT SQR(12*44): PR ■ 
INT 456/789 (R), 

Nei casi appena visti l'insolita divisio- 
ne della parola PRINT o dì altre. .. “co- 
se" (come numeri e comandi), non deve 
essere considerata come una imprecisio- 
ne che può causare errori di interpreta- 
zione da parte del computer. Ciascun 
computer, infatti, "vede" una serie di 
caratteri come tm 'unica lunga linea. Nel 



caso del Vie 20 è possibile digitare fino ad 
88 caratteri consecutivi prima di battere 
il tasto di ritorno carrello (in caso conira 
rio viene emessa una segnalazione di er- 
rore). Nel Commodore 64 i caratteri ac- 
cettati sono 80 che corrispondono a due 
righe consecutive (il video è del formato 
25 linee di 40 caratteri ciascuna). T unì gli 
apparecchi considerano, in ogni caso, la 
fila di caratteri da “trattare" come un'u- 
nica riga la cui lunghezza viene misurala 
dal primo all'ultimo carattere battuto, 
Ciò che appare sul video , e le eventuali 
insolite divisioni di parole e comandi, 
danno fastidio solo... all "utilizzatore: il 
Sistema Operativo non le nota affatto. 

Dimostriamo ulteriormente che il ba- 
sic è un linguaggio interprete. Battiamo: 

PRINT 123+456: PRONT 2+2 (R) 

Otteniamo come risposta: 

579 

7SYNTAX ERROR 
READY. 

]J computer, infatti, legge ed interpre- 
ta. carattere per carattere. PRfNT 123 + 
456. Dopo quest'ultimo valore incontra 
il carattere due punti, deduce che listru- 
/ione appena incontrata termina in que- 
sto punto e la esegue senza indugio dan- 
do come multato la visualizzazione del 
valore-somma 579, 

Subito dopo si appresta ad inierpreta- 
re le parole chiave successive al doppio 
punto {che ricordiamo, non significa “di- 
viso") ma incontra alcune difficoltà 
(PRONT invece di PRINT), interrompe 
il lavoro ed emette il messaggio. 

Il linguaggio, dunque, lavora fino a 
che non incontra incongruenze tra ciò 
che gli viene richiesto di interpretare o 
elaborare e ciò che invece gli è stato “in- 
segnato' 1 , vale a dire le rigide regole sin- 
tattiche memorizzate da qualche parte 
airintemo del computer c sempre con- 
trollate al momento di eseguire ordini. 


Abbreviazioni possìbili 

I Commodore accettano "abbrevia- 
zioni” di comandi lunghi in modo da evi- 
tare all'ut ì lizza torc la fatica di haitcrc 
molti tasti. TI comando più noto é pro- 
prio PRINT che può essere sostituito dal 
punto interrogativo. 


Commodore Computer Club - 47 


DIDATTICA 



• smTt* tì ' jo: Ci- 'iliaco 


Ad esempio invece di batterei 
PRINT 2+I(R) 

è sufficiente digitare: 

? 2+2 (R) 

A questo punto, per consentire »! let- 
tore che ha appena aq instato un personal 
computer, come a quello che,,, lo sogna 
ancora, proponiamo una sene di esercizi 
da eseguire dapprima con carta e penna e 
poi col calcolatore per la verìfica: 

Che cosa accade se digitiamo:. 


a} PRINT 123 (R) 

b) PRINT 123*456: (R> 

c) ? 123::: PRINT 123+20*1 (R) 

ci) PRINT 123,54 *2 (R) 

e) PRINT98-251:?:PRIN 3+98 (R) 

0 PRINT 22+45*27/12-73 (R) 

g) PRINT (22 +45}‘ 27/(12-73) (R) 


Risposte 

Ecco che cosa “pensa" il computer do- 
po che premiamo il tasto Return nei vari 
esercizi proposti: 


a/ Il computer segue il ragionamento: 
“Mie stato ordinato di scrivere (FRINÌ) 
il numero 123; poiché la riga termina qui 
(R) eseguo la visualizzazione di 123 e mi 
metto a disposizione per altri ordini”. 

bj “Scrivo il risultato del prodotto ( * ) di 
123 x 456. 1 due punti che incontro subito 
dopo mi indicano che dovrebbe esserci 
un altro ordine da eseguire. Ma... non 
trovo nuiPaltro che il carattere di termi- 
ne riga (R). Termino dunque di operare 
$ent& emettere un messaggio di errore 
dato che errori non vi sono.” 

e/ 'Scrivo il numero 123. Il gruppo di tre 
doppi punti valgono come se fossero uno 
solo, AI rigo successivo scrivo il risultato 
della somma 123 +200“ , 

d / “Il numero degli spazi dopo l ordine 
non mi fanno nè caldo nè freddo: eseguo 
Perdine come se le cifre fossero ravvici- 
nate. L'unica differenza consiste nel fat- 
to che mi hanno fatto perdere un pò di 
tempo per riconoscere (e scartare) i ca- 
ratteri che non hanno senso (spazi bian- 
chi detti anche “blank"). Considerando 
che però viaggio alla velocità di un milio- 
ne di operazioni al secondo../' 

e/ “Visualizzo la differenza 98-251. AI 
rigo successivo scrivo... nulla, e mi bloc- 
co al terzo ordine: Che diavolo vorrà dire 
PR1N ? Ma guarda un po' che mi doveva 
capitare!” 

ff “Finalmente qualcosa di meno ele- 
mentare! Dunque., eseguo dapprima la 
moltiplicazione, poi la divisione e infine 
le somme algebriche a meno che...". 

g/ non vi siano le parentesi. Il loro 
contenuto va risolto con assoluta priorità 
rispetto alle cifre presenti al di fuori di 
esse. Un controllo però va fatto prima di 
iniziare il calcolo: vediamo... una* due, 
parentesi aperte... una, due* parentesi 
chiuse. Tutto a posto: il numero delle 
parentesi a pene è eguale a quello delle 
chiuse. Eseguo correttamente il calcolo 
e , almeno per oggi* basta con ì SYNT AX 
ERROR, 

Provate ad alterare il numero di paren- 
tesi aperte o chiuse oppure ad insenre il 
carattere di duppio punto (:) dove non 
serve: imparerete in tal modo altri casi in 
cui è possibile ottenere segnalazioni di 
errore. 


Livelli di parentesi 

A scuola abbiamo imparato a servirci 
di tre livelli di parentesi (Graffe* Qua- 
dre, Tonde). Questo modo di operare è 
però utile solo per facilitare la “lettura" 
dell'espressione matematica alTindivi- 
duo*.* umano che la legge. 

Il computer non ha difficoltà ad inter- 
pretare \] corretto odine di lettura, 

Esempio: 

a/ A scuola... 



b / ...col personal computer... 

PRINT 4- (5 +2* ( (3 +2 J/4-7/Ó )) 

Come è facile notare c'è indubbiamen- 
te, da pane di noi,., umani, una difficol- 
tà di “lettura^ 1 nel secondo modo rispetto 
al primo, 

I tre tipi di parentesi e la scrittura sotto 
forma di frazioni sono indubbiamente 
più semplici se scritte come abbiamo im- 
parato a scuola, Purtroppo non c'è altro 
modo di esprìmere l'operazione da effet- 
tuare ne! caso di calcoli a più livelli di 
parentesi. Si rassicuri, comunque, il let- 
tore: è solo questione di ahi indine e di 
esercizio: dopo un pò di tempo scompa- 
rirà ogni difficoltà sia neirimpostare 
un'espressione matematica sia nel 
“capirla”* 

In ogni caso non ricorreremo, in que- 
ste pagine, ad espressioni cosi 
complesse. 

Le variabili 

Abbiamo visto poco fa che con un per 
sonai computer è possibile realizzare le 
stesse funzioni dì una calcolatrice tasca- 
bile con molte differenze positive: sullo 
schermo del calcolatore (quasi sempre 
rappresentato dal televisore domestico) 
rimangono visualizzate le ultime opera- 
zioni compiute ed è più agevole un con- 
trollo da parte dciroperatore Quando 
però lo schermo viene riempito, il calco- 
latore effe o ua automaticamente il cosid- 
detto “scrolli ng", vale a dire lo scorri- 
mento della pagina video verso l'alto. 


48 - Commodore Computer Club 



DIDATTICA 


con la conseguenza di cancellare i carat- 
teri delle prime righe in modo da lasciare 
le ultime ( quelle, cioè, in basso) libere di 
ospitare altri comandi. 

Passiamo ora ad un altro argomento 
apparentemente slegato dal "difetto” 
dello scrolline Quasi tutte le calcolatrici 
posseggono il tasto della “memoria" che 
consente di memorizzare il valore nume- 
rico presente sui visore al momento della 
pressione del tasto. Quante memorie 
possiede un personal computer? 

Un numero decisamente superiore, 
come è facile intuire. Prima di vedere 
quanti, vediamo però come possono es- 
sere memorizzati alcuni valori numerici. 
E' però necessario rinfrescarci la memo- 
ria su ciò che si intende per "formula 
matematica". Essa è una relazione uni- 
versale che rivela la propria utilità sosti- 
tuendo ai valori letterali gli opportuni 
valori numerici (ma che diavolo vorrà 
dire?). 

Ricorriamo ad un esempio, A scuola ci 
hanno insegnato che l'area di un rettango 
Io è data da: 

A — b x h 

in cui A rappresenta Parca che si deside- 
ra calcolare, b la base ed h l'altezza del 
rettangolo da studiare, Se al posto di "b” 
ed + 'h h ' sostituiamo valori numerici, it ri 
sultato della moltiplicazione viene chia- 
mato Area ed indicato, per comodità, 
con A, Il motivo per cui gli umani si 
servono di lettere dell'alfabeto, invece 
dei simboli più propriamente numerici, 
risiede net fatto che la mente umana rie- 
sce a concentrarsi più facilmente su sim- 
boli brevi anziché su numeri. Non dob- 
biamo infatti dimenticare il caso di for- 
mule complesse in cui intervengono nu- 
merosi simboli. Se si utilizzassero diret- 
tamente, al loro posto, i valori numerici 
rappresentati, si commetterebbero facil- 
mente degli errori. L'essere umano, in- 
vece, "lavora" inizialmente con simboli 
più semplici da trattare ed in seguito, 
dopo aver semplificato con opporle ni ac- 
corgimenti la formula stessa, sostituisce i 
numeri ed esegue i calcoli, limitando in 
tal modo la possibilità di sbagliare. 

Che cosa c entra tutto questo con le 
variabili? 

Provate a digitare: 

A ~ 123 ( R ) oppure . , . 

LET A - 123 


Come risposta ottenete soltanto un 
READY. Tutto qui? Provate ora a can- 
cellare lo schermo (tasto Shift insieme 
con Ctr/home) in modo da avere solo il 
cursore lampeggiante, e digitate: 

PRINT A ( R > 

ottenete in risposta: 1231 Diamine, ma 
allora memorizzare un valore è la cosa 
più semplice di questo mondo! E se noi, 
per esempio, digitiamo 

A =456: B = 789 (R) 

succede forse che.,, 

PRINT A: PRINT B: PRINT A+RfR) 

è proprio vero: il computer (ratta (e 
lettere come se al loro posto fossero pre- 
senti t numeri prima impostati. Invecchi 
456+7H9 si può digitare PRINT A+B. A 
proposito, prima A valeva 123 mentre 
ora rappresenta il numero 456. Ne dedu- 
ciamo che in "A" viene incase Ha lo sta- 
bilmente l’ultimo valore comunicato ai 
computer. Ecco dunque da dove viene il 
nome di variabile. 

Siamo sicuri che il dato viene memo* 
rizzato stabilmente? Facciamo una prova 
per sincerarcene. 

Spegniamo il computer, aspettiamo 
qualche secondo e riaccendiamolo. Pro- 
vate a digitare: 

PRINT A: PRINT B: PRINT C (R) 

otteniamo come risposta tre zeri (0), La 
prova appena effettuala dimostra che: 

* Quando si spegne un computer tutti i 
dati memorizzati vengono ìrremediahìi- 
mente persi. 

• Quando un computer viene acceso 
tutte le variabili sono poste automatica- 
mente al valore nullo (vedi infatti ciò che 
accade alle variabili “A". "B " e “C* nel- 
l'esempio appena visto), 

Fermiamoci un momento prima di 
proseguire. 

Proviamo a digitare, carattere per 
carattere: 

PRINT A,B,C (R). 

ed in seguito:, 

PRINT A;B;C(R). 



dopo aver assegnato, oppure no, valori 
qualunque alle tre variabili (esempio: 
A = 123: B =456 eccetera) [1 risultato 
che sì ottiene è che net primo esempio 
(caso della virgole usa fu come separatore 
tra tc lettere) i valori sono allineati in 
modo tale che la prima cifra di ciascuno 
di essi sia a distanza eguale dalla corri- 
spondente prima cifra del valore che pre- 
cede e che segue. Ne! caso invece del 
punto e virgola notiamo che t tre valori 
sono trascritti l'uno dopo l'altro senza 
"sprecare" spazio tra un valore c I altro. 
[I metodo appena descrìtto può esser uti- 
le sìa per battere meno (asti, sia per ri- 
sparmiare spazio sullo schermo, sia per 
allineare più valori su di uno stesso rigo. 


Quante variabili 

può memorizzare un computer? 

La risposta sembrerebbe banale: tante 
quante sono le lettere dell'alfabeto, vale 
a dire 26 (cioè A, B, C,.,Z>. In realtà 
sono parecchie di più Tutti i pers onal 
riconoscono infatti variabili con due let- 
tere. Digitando ad esempio: 

A = 123: AA = 456 ( R ) 

PRINT A,AA (R) 

otteniamo, appunto, 123 e 456 e ciò di- 
mostra che la variabile “A ” è considerata 
diversa dalla variabile "AA", Le variabi* 
li da trattare "vanno" quindi da:. 

A A AB ... fino ad AZ 
RARE.,, fino a BZ 

+ w * »• p *■ * ■¥ ■. 

ZA ZB ... finca ZZ 


Commoda re Computer Club • - Jc * 



DIDATTICA 


per un totale di 26x26=676 variabili. 
Queste devono essere aggiunte alle 26 
viste prima e, stavamo per dimenticarlo, 
perfino alte variabili del tipo: 

À0A1-.* A9 
B0B1„ + B9 

ZDZl.’z». 

Queste variabili sono cioè individuate 
da una lettera ed un numero. 

Nota bene: non al contrario; "AO” è 
identificata come una variabile mentre 
“DA" non ha alcun significato o meglio 
può averne uno molto.,, strano cui non 
accenniamo nemmeno. Ricordate anche 
che nelle variabili con numero si avranno 
interpretazioni diverse a seconda se si 
digita A zero (“AG") oppure “AO". 

In totale si dispone di; 

26 + 676 + (10x26) = 962 variabili 
vaie a dire valori diversi che è possibile 
memorizzare, modificare e richiamare a 
piacimento. Come vedremo in seguito i 
valori sono dì gran lunga più numerosi ed 
in ogni caso incomparabilmente più “co- 
modi" da gestire in confronto ad una 
calcolatrice tascabile. 

Una variabile può avere anche più di 
due lettere, ma il computer riconosce 
comunque solo le prime due e trascura le 
altre. Ad euempio per il computer 
“RA’L “RAGGIO", e “RADAR" è 
sempre la stessa variabile. 

Bisogna, inoltre* prestare attenzione a 
non adoperare, come “nomi" di variabi- 
li, gruppi di lettere deifalfabeto che indi- 
viduano particolari comandi del 
computer. 

Se ad esempio tentate di digitare:, 
COSTANTE— 25 (R) 
otterrete milfaltro che un SYNTAX 
ERRQR. Le prime tre lettere iniziali 
della variabile in oggetto (CGS) sono in- 
fatti “riservate" al computer per calcola- 
re il coseno di un angolo. 

Analogamente i nomi TABELLA* 
FORNITURA, POSTA ed a Irre genera- 
no un messaggio di errore perchè inizia- 
no con te “parole riservate" TAB, POR, 
POS. 

Una nuova funzione: 

FRE(O) 

Quando accendiamo un personal coiti 
puter Commodore, se proviamo s 
digitare: 

PRINT FRE{0) (R) 


otteniamo come risposta un numero in- 
tero. Questo rappresenta il numero di 
byte f locazioni di memoria) a nostra di- 
sposizione, in quel momento, nel 
calcolatore, 

Nola per il Commodore 64; se con 
FRE(O) il valore che compare è positivo, 
esso indica la quantità di memoria effet- 
ti vamente disponibile Se invece risulta n 
egativo, è necessario battere: 

PRINT 2] 16 + FRE(U) (R) 

per conoscere* appunto, l'esatta quanti- 
tà di memoria, 

Supponiamo che il numero sia 1000. 
Se ora proviamo a digitare , ». : 

A = 123 (R) 

e “chiediamo" nuovamente PRINT 
FRE(O) otteniamo in risposta un valore 
inferiore a quello prima visto ed esatta- 
mente (caso di tutti ì personal Commo^ 
dorè)* inferiore di sette byte. 

Facendo diverse prove ci possiamo 
render conto di quanto segue; 

1/ Ogni nuova variabile memorizzata ri- 
chiede sette celle di memoria dette 
^byte". 

2/ La modifica del valore di una variabi- 
le precedentemente “dichiarata" non al- 
tera il numero di byte rimasti a 
disposizione, 

3 f II numero di byte richiesti per la me- 
morizzazione è sempre io stesso (sette) 
sia che il valore memorizzato sia di una 
sola cifra, come nel caso in cui sia di più 
cifre o addirittura contenente la virgola 
(che, come è noto, è un punto,.,). 

Per renderci conto dì quanto asserito 
facciamo la seguente prova: 

• Spegnete e riaccendete il computer, 

• digitare PRINT FRE(0)(R) 

• À«5: PRINT FRE(0)(R) 

• A =567.456: PRINT FRE(O) (R) 

. A=0: B=45.87: ? FRE(0) (R) 

• AÀ=45; A = 12:B— -76:PRINT 
FRE(O) (R) 

A che serve ciò che abbiamo appena 
detto? 

Semplicemente per ricordare che una 
cosa è la potenzialità di uti computer* 


altra cosa è leffettiva disponibilità di tale 
potenzialità (ma che è, filosofia?) 

Spieghia mod meglio. 

Se un calcolatore dispone, ad esem- 
plo, di soli 1000 byte dì memoria non sarà 
possibile, e solo per motivi strettamente 
fisici, memorizzare un numero di varia- 
bili superiore a 142 (dato da; 1000/7) pur 
se in teoria il computer potrebbe farlo. 
Volendo sfruttare appieno le potenziali- 
tà della macchina è necessaria una me- 
moria di almeno %2x7~6734 byte. Co- 
me però avremo modo di vedere, il nu- 
mero d i variabili che è possibile teorica- 
mente inserire in memoria è dì gra lunga 
superiore a quello visto d^962. 

Fortunatamente non capita spesso dì 
dover tenere a mente un numero così 
elevato di elementi e di conseguenza an- 
che calcolatori con poche migliaia di byte 
(in gergo Kìlobyte o Kbyte o setti pii ce- 
rnente K) sono sufficienti per fare “gran- 
di" cose. 


Altre variabili 

Se il valore che desideriamo memoriz- 
zare è intero e compreso tra -32768 e 
+32767, è possibile, per memorizzarlo, 
ricorrere alle cosiddette variabili intere. 

Il nome di queste possono* come i no- 
mi delle variabili decimali, essere com- 
posti da una sola lettera, due lettere o da 
una lettera ed un numero. Devono però 
terminare sempre col simbolo della per- 
centuale (%) T allo scopo dì differenziarle 
dalle variabili studiate preceden- 
temente. 

Esempi: 

A% = 123: AA4t=5tì7; Bl#=-76 

eccetera. 

Sono ovviamente possibili operazioni 
miste facendo però attenzione a non di- 
menticare il carattere di due punti (:) tra 
le varie istruzioni. 

A =123,456: A^=987: PRINT 

m 

Viene generato un messaggio di errore 
nei casi in cui noti si rispettano le caratte- 
ristiche tipiche delle variabili intere, 
Esempi: 

A % =-40000; A r f — 1000* 100: 

A^ — 125.2 


50 - Commodore Computer Club 


DIDATTICA 


Nel primo e net secondo caso, intani, i 
valori superano rimervalk) lecito, men- 
tre il terzo caso tenta di "tratture" una 
variabile declinale. Pur se nei primi due 
casi viene, comunque, visualizzato un 
messaggio di errore ! ILLEGA I. QUAN- 
TTTY ERROR). nel terzo casti non vie- 
ne emesso alcun messaggio. Se però 
digitiamo: 

ATf “ 125.25 :PRINT A# 

otteniamo in risposta 125: E stata cioè 
memorizzata la sola parte intera. E' da 
notare che, anche in questo caso, è possi- 
bile memorizzare, oltre alle variatili deci- 
mali viste prima, quasi 962 variabili inte- 
re a patto, ovviamente, che vi sia memo- 
ria RAM disponibile sul personal com- 
puter adoperato, 

Ancora variabili: 
vettori e matrici 

Se la possibilità di memorizzare le cen- 
tinaia di valori prima visti appare mode- 
sta oppure scomoda da gestire, vi potete 
servire delle variabili cosiddette "ad 
indice". 

Questo modo di indicarle deriva pro- 
prio dai Fatto che ci si può riferire ad un 
indice (racchiuso tra parentesi) che te 
distingue ['una dall'altra. Ricorriamo ad 
alcuni esempi prima di approfondire 
l'argomento: 

A(1)=12: A(2)—34.54: A(3)=- 

45.76:.,,, A(9)=567 (R) eccetera. 

* 

Naturalmente sono lecite definizioni del 
genere: 

AA%(7)=-345: AA(6) = *45* ÀA(2) 

ccc. 

E’ inutile dire che è possibile servirsi di 
due lettere qualunque per definire cia- 
scun vettore c che il valore tra parentesi 
(indice) può, in genere, variare tra 0 e 
65535. 

Come versatilità non c'è male! 

Si ricorda che se rindice che intendia- 
mo utilizzare è superiore a 10 bisogna. 
prima di usare le variabili, definire la 
dimensione massima de! vettore che le 
conterrà. In altre parole supponiamo di 
voler memorizzare 23 valori servendoci 


non di variabili con nome diverso l'uno 
dall'altro. ma ricorrendo ad una variabi- 
le che ha sempre lo stesso nome ma indici 
di riferimento ovviamente diversi l'uno 
dall'altro. Se proviamo a digitare...: 

A(0}=344 (R) 

A(1)=567{R) 

4- * « * S * ■ f ■ * i MtiH 

A(I0)»567(R} 

.... queste cifre vengono accettate. Non 
appena proviamo a memorizzare il dodi- 
cesimo elemento (compreso lo "zeresi- 
mo’l, come ad esempio ,,: 

Af tl}"654 (R) 

... otteniamo in risposta il messaggio di 
errore: 

?B AD SUBSCRIPT ERROR 

Avremmo dovuto dimensionare fin all'i- 
nìzio il vettore (—tabella) che in seguito 
avremmo utilizzato per memorizzare i 
diversi valori. La sintassi per tale opera- 
zione è DIM Se ad esempio desideriamo 
definire due vettori, l'uno decimale di 23 
elementi col nome XI e l’altro intero di 
234 elementi col nome ì 7 E% dobbiamo 
digitare: 

DIM Xt(22): DIM FE%(233} (R) 

Dopo tale operazione è possibile 
memorizzare... 

FE%(43)=-7654: X 1(21)^56.89 

... oppure leggere... 

PRINT FE%(143), X1(I3) eccetera. 

E' altresì possibile dimensionare ma- 
trici pluridimensionali. Queste sono del- 
le vere e proprie tabelle in cui memoriz- 
zare. in ciascuna casella da cui sono for- 
mate, altrettanti valori numerici. Se per 
esempio digitiamo: 

DÌM A(20 1 3D) 

non facciamo altro che riservare spazio 
in memoria per un numero di 20*30=600 
valori decimali. Sono pertanto possibili 
memorizzazioni del tipo: 

A( 12, 5) =876: A(7,26)=987 e simili. 


In parole molto semplici, con l'esem- 
pio accennato si crea in memoria Io spa- 
zio per una tabella numerica formata da 
2 1 righe e da 31 colonne. Se si pensa che 
sono possibili definizioni del tipo: 

DIM A{32.54.13) 

è facile immaginare le enormi possibilità 
offerte da un personal computer. Si ri- 
corda. però, che è bene fare i conti con la 
memoria disponibile. Il computer, infat- 
ti, può memorizzare a patto che... abbia 
memoria RAM sufficiente per compiere 
l'operazione! Ricordando che. in gene- 
re, una variabile decimale ad indice oc- 
cupa in media cinque byte, è bene fare 
un calcolo prima di dimensionare un va- 
lore eccessivo. In caso contrario si ottie- 
ne in risposta un messaggio del tipo: 
?OUT QF MEMORY ERROR 
vale a dire: non c è memoria sufficiente 
per compiere l'operazione. 

Ancora variabili, 
stavolta alfanumeriche 

Tutti sanno che un computer può 
' trattare’' simboli anche diversi da quelli 
tipici della matematica e lo dimostra il 
fatto che gli errori vengono visualizzati* 
in genere, mediante veri e propri 
messaggi. 

Anche noi possiamo memorizzare pa- 
role. e addirittura intere frasi e messaggi 
vari con limitazioni decisamente mini- 
me, La sintassi corretta per eseguire l'o- 
perazione consiste nel far seguire le lette- 
re del nome della variabile dal segno del 
dollaro ($) e ncIPinsenre tra virgolette a 
apici ( ") il messaggio da memorizzare. 
Esempio: 

A$="MESS AGGIO”: 
FR$=“OUESTA E’ UNA FRASE 'iR) 

In seguito saranno ovviamente possi- 
bil i operazioni de) tipo, < . . : 

PRINT ÀS.FRS.... ed operazioni 
miste,.. 

PRINT A.A%,AA$ 1 AL 

Segnalazioni di errore 
nel trattamento delle variabili 

Come abbiamo visto, esiste una note- 
vole capacità di memorizzare un gran nu- 


C ommodùrè Computer Club - 5ì 




DIDATTICA 



mero di variabili. E d'altronde doveroso 
prestare la massima attenzione aflinchù 
la memorizzazione avvenga senza i neon- 
venie riti di sona. Riponiamo pertanto 
un elenco di messaggi di errore che il 
computer visualizza nel caso venga digi- 
tato uiì comando inesatto come nel caso 
di impossibilità di eseguire l'operazione 
richiesta. 

Negli esempi che seguono il simbolo 
t R) significa* come al solito, “Premere il 
tasto di ritorno carrello (Return)”. 

• ?SYNTAX ERftOR 

La sintassi richiesta non è stata rispet- 
tata. Casi tipici sono rappresentati dal- 
fomissione di parentesi, segni di eguale, 
apici, doppi punti. Esempi: 

A“(R) Manca il valore da assegnare ad 
A 

A + Fi (R ) Manca il comando FRIN Ì 
? (A+B)'45) (R) Il numero di parentesi 
aperte è diverso da quello di parentesi 
chiuse. 

FRINÌ A FRI NT D f R> Manca il carat- 
tere dei due piunti tra le due istruzioni 
FRINÌ’ A,:R, (R) Cò un carattere di 
doppio punto " in più”. 

# 7DIVISIQN B Y ZERO ERROR 
Capita quando si tenta di dividere un 

qualsiasi valore per zero, operazione no- 
toriamente impossibile. Esempi: 

A=0: FRI NT UXì/A (R) 

E' invece possibile; 

A =0: PR 1 NT A/IUfl ( R ) 

* U ELEI ì A L QUAN ìl i V ERROR 

Capita quando si richiede di lattare 

un valore inaccettabile, Esempi: 

A % “ KHXKXI (R) Con variabili intere il 
valore memorizzabile deve infatti esser 
compreso neirintervallo -32768 e 
+32767 

A=-4: PRINTSCJR(AMK) Ricordiamo 
che SQR( X ì calcola la radice quadrata di 
un numero. Questo deve, come è noto, 
essere maggiore o eguale a zero 
A=-3.?6: FRINÌ LOGIA) (Ri Vedi os- 
servazione precedente. 

DIM A(32): PRJNT A(45) (R) Non è 
possibile riferirsi ad un indice superiore 
al massimo dichiarato. 

* ? OU T OF MEMOR Y ERROR 
Capita quando st cerca di memorizzare 

troppe variabili o matrici con un numero 
eccessivo di dementi. E' intuitivo che il 


r >2 - Commodore Computer don 



DIDATTICA 


messaggio dì errore viene visualizzato 
nel caso si superi la quantità di memoria 
disponibile. 

Consideriamo infatti il seguente 

esempio; 

DIM A(IOUHH'R) 

Questo comando porta al messaggio di 
errore in oggetto nei caso Jj un computer 
con scarsa memoria (es. Vìe 20 incapati' 
so), mentre viene accetlatu nel caso di 
computer con maggiore capacità (Com- 
modore 64, Vie 20 con scheda di espan- 
sione di almeno 8K, Plus-4. eccetera). 

* TOVERFLÓW ERRÒfi 

Capita quando Si cerca di ''trattare" un 
valore troppo grande per la capacità di 
calcolo del computer, Esempio: 

PRINT lOOOGj lOQOO (R) 

Ne approfittiamo per ricordare che il 
simbolo trecciti iti alto (T) viene utilizza- 
to per compiere l'elevazione a potenza. 
Se ad esempio si desidara calcolare il 
cubo della variabile *'A' T ri deve digitare: 
PRINT A|3 (R) 

* 7REDIMD ARRA Y ERROR 
Capita quando si tenta di dimensiona- 
re nuovamente un vettore già dimensio- 
natolo in precedenza, Esempio: 

DIM A (23): DIM A(12)(R) 

» ; J t ype Misto a rea errqr 

Capila quando si cerca di trattare co- 
me variabile numerica una stringa o vice- 
versa* Esempio: 

A— "PROVA” (R) Manca il simbolo del 
dollaro 

BS = ”123": A=-45+B$'(R) Non è possi- 
bile sommare numeri a stringhe anche se 
queste rappresentano caratteri numerici. 
AS=NQME (R) Mancano gli apici di 
apertura e chiusura (“NOME 1 ). 

Esercizi dì riepilogo 

Cercate di rintracciare, tra le "linee 
che seguono, quelle che contengono er- 
rori, e. tra queste, determinale il messag- 
gio di errore che il computer emettereb- 
be. Nel caso i comandi vi sembrino cor- 
retti, individuate la risposta che fornireb- 
be il calcolatore. Dovete immaginare che 
][ computer sia stato spento ed in seguito 
riacceso poma di eseguire, l’uno dopo 
l'altro, gli esercizi proposti. 

E' ovvio che le scritte 1/ 2/... 9/ non 
devono essere trascritte. 

1/ PRINT A(7)*A(2) (R) 

2/ PRINT A(7VA(2)(R) 


3/ DIM Al 15) (R) 

4/ A=A*34+B;PRINT A (R) 

5/ CSS- VOCABOLO " PRINT CSS 

(R) 

6/ PRINT CSS 

li CSS=” VOCABOLO”: PRINT CSS 
(R) 

8/ CSS=CS'4CS!(R) 

9/ PRINT C$S,A.A(3)(R) 

Risposte 

\j La prima riga e corretta. Il risultato 
fornisce zero. Infatti non appena si ac- 
cende il computer tutte le variabili valgo- 
no zero. Si noti soprattutto che e! sempli- 
ce fatto di aver "nominato'’ variabili con 
indice, genera un dimensionamento im- 
plicito. Ce ne accorgeremo digitando il 
comando della terza riga. 

2/ Deriva un DI VISION BY ZERO 
ERROR: Non si può dividere un nume- 
ro (A(7)) per zero (A (2)). 

3/ Viene visualizzato il REDIM’D AR- 
RAY ERROR dato che precedente- 
mente (rigo uno) è stato già definito, 
anche se implicitamente, il vettore dal 
nome A. 

4/ Il risultato è zero. Anche in questo 


caso "A” e "B” valgono zero non appe- 
na si accende il computer 
51 Viene visualizzato un S YNTAX ER- 
RO R Manca infatti il segno dei due 
punti (:) tra i due comandi (prima di 
PRINT). Ss noti che in questa fase, no- 
nostante l'omissione del carattere si ma- 
nifesti dopo uii comando corretto 
(CSS — "VOCABOLO”), questo non 
viene memorizzato. Nel caso, infatti, in 
cui su di una stessa riga vengano digitati 
più comandi, sono accettati solo quelli 
sintatticamente corretti tino al carattere 
di doppio punto (:). Nel caso presente 
non vi sono comandi corretti prima del... 
primo doppio punto (che addirittura 
manca), * 

6/ La battitura di questa riga, che forni- 
sce in risposta un rigo vuoto sullo scher- 
mo. dimostra che la riga precedente (S/ì 
non è stata accettala nemmeno in parte. 
Per il computer la stringa CSS è vuota . 
non contiene, cioè alcun carattere. 

7/ Questo ò il modo corretto di digitare 
la riga 5. Viene ovviamente visualizzata 
la parola VOCABOLO. 

Hf Viene eseguita la.., somma di due pa- 
role, Vale a dire che mentre prima la 
stringa CSS conteneva la parola vooabo- 



Commodore Computer Club - 53 



DIDATTICA 


lo. dopo l'operazione di somma come irà 
il risultato delFope razione predente a de- 
stra de! segno eguale, vale a dir c: 

VOGA BÒ L O V OCA BO LO 

Non è possibile un 'operazione di diffe- 
renza, moltiplicazione o divisione tra 
Stringile che, come è intuitivo, non 
a vrebbero sanso. 

9/ La visualizzazione di CS$ viene segui- 
ta da due zeri, valori posseduti dalle va- 
riabili A c A(3). Si fa notare che nella 
fase S non viene visualizzata la stringa 
CS$ per il semplice motivo che.., non è 
stato richiesto. Si deduce che il computer 
esegue sì Manto quei comandi che vengo- 
no impaniti. Se si desidera visualizzare 
qualcosa è indispensabile ricorrere al co- 
mando PR1NT. In ogni caso il risultato 
delle varie elaborazioni viene mantenuto 
in memoria fino a che non sì spegne la 
macchina o vengono modificate le varia- 
bili stesse mediante opportune istru- 
zioni. 

C'è un'istruzione che cancella tutte le 
variabili, di qualunque tipo esse siano. 
Questa è “CLR ' (abbreviazione di 
Clear— cancella). 

Attenzione quindi ad usarla! 

La programmazione 

La programmazione non è. come co- 
munemente si crede, un concetto nuovo 
nè richiede, per la comprensione, altre 
esperienze al dì fuori di quelle quotidia- 
ne. Ricorreremo subito ad un esempio 
banalissimo per dimostrare quanto 
assento. 

Supponiamo di voler andare in edicola 
ad acquistare un giornale Per raggiunge- 
re lo scopo prefissato (acquisto di un 
giornale) noi eseguiamo Tempre, magari 
senza rendercene conto, una serie di 
operazioni. Volendo descrivere il nostro 
comportamento in modo sbrigativo, pos- 
siamo riassumere le azioni da compiere 
nel modo seguente : 

1/ scendiamo in strada; 

Zi d rechiamo all edicola; 

3/ acquistiamo ìl giornale: 

4/ torniamo a casa. 

Forse non ci crederete, ma questo ap- 
pena descritto c un programma! Esso c 
stato, per pura questione di comodità e 
chiarezza, suddiviso in quattro punti 
“fondamentali" ma potevano anche es- 
sere in numero inferiore: 

1/ ci rechiamo dal giornalaio per acqui- 
stare il giornale; 


2/ torniamo a casa a leggerlo. 

A voler essere un po' pignoli i punii pri- 
ma visti dovrebbero essere ben più 
numerosi. 

Scommettiamo che. nel l'azione abi- 
tuale di acquaio, eseguite tutte le opera- 
zioni che tra breve verranno descritte? 
Osservate attentamente. Vi sfidiamo a 
negare anche una sola delle operazioni 
che compite quando vi 11 programmate" 
per l'acquisto di un giornale: 

1/ Verificate se il giornale desiderato 
non favete già acquistato. 

2/ Se lo avete già comprato saltare alla 
fase N.lh, altrimenti continuate con la 
N.3. 

3/ Controllate di avere in tasca il denaro 
sufficiente per l'acquisto. 

4/ Se la verifica della fase N.3 è negativa 
vi procurate tl denaro, Se non riuscite a 
procura rvelo saltate alla fase N.17, 

5/ Controllate che il vostro abbigliamen- 
to e/o aspetto personale siano adatti.,, 
alla missione che stale per compiere. 

6/ Nel caso in cui siete in vestaglia e 
pantofole provvedete a cambiarvi a se- 
conda della stagione e delle., . condizioni 
atmosferiche (se piove prendete 
l'ombrello). 


7/ Se c'è qualcuno in casa avvertite che 
state per uscire, 

8/ Usate le scale o l'ascensore a seconda 
dei casi (fermo per manutenzione, man- 
canza di ascensore eco), 

9/ Decidete quale giornalaio raggiunge- 
re (probabilmente il più vicino). 

10/ Se è necessario attraversare la strada 
mettete in atto le più elementari regole di 
prudenza ne U'aì tra versa ria. 
li/ Raggiunto il luogo chiedete ciò che 
desiderate, 

12/ Se la pubblicazione è esaurita indivi- 
duate l'altra edicola più vicina. Saltate 
alla fase 9, 

13/ Pagate la cifra richiesta ed intascate 
l’eventuale testo. 

14/ Riprendete la strada di casa, 

15/ Entrate nel vostro appartamento. 

16/ Vi mettete a leggere (finalmente) il 
giornale, 

17/ Fine di tutte le operazioni. 

Se avete avuto la pazienza di seguirci 
fin qui, vi sarete sicuramente accorti che 
è possibile essere ancora più pignoli di 
quanto non lo siamo stati noi stessi. Ad 
esempio tra la fase 14 e 15 sarehbe op- 
portuno inserire una fase (N,14a) del tut- 



54 - Commodore Computer Cfab 




STUDIO D 

PER NON SMARRIRE MAI IL FILO DEL DISCORSO. 
STUDIO D 

[Mimmi RADIOTELEVISIVE INDIPENDENTI CHE SI FANNO SENTIRE. 


CONCESSIONARI MEZZI 
RADIOTELEVISIVI 

STUDIO D 

Via Rossini S • 20122 MILANO 


Tei. (02) 799.S92 782.S03 


DIDATTICA 


/STEMA 
TELI ARE 


Specialisti di Software 


TITOLATE LE 
VIDEO-CASSETTE DI 
VOSTRA PRODUZIONE 


Il “Generatore di Caratteri’* di Si- 
stema Stellare vi permette di ap- 
porre con facilità i titoli ai vostri 
vìdeo-film. 


Completamente generati dal 
programma! 

Quattro differenti funzioni! 

Non è richiesto nessun apparec- 
chio addizionale tranne i normali 
cavi di collegamento! 

Istruzioni fornite in cinque lingue:* 

Italiano 

Inglese 

Francese 

Tedesco 

Spagnolo 

Finalmente un tocco dì professio- 
nalità alle vostre video- 
produzioni! , 


Cassetta soto L. 35.000 
Disco soloL 40,000 


* Tutte comprese nella versione 
disco. Per la versione cassetta 
specificare la lingua desiderata. 


Si prega ordinare a mezzo vaglia 
postale intestato a: 

Carla Rowland-Tìms 
Via Lago Patria 
Parco Mazzola 
80014 Lago Patria (NA) 


to simile alla 10, La prudenza nell attra- 
versare la strada è sempre auspicabile! 
Altre fasi possono essere introdotte a 
piacivcnto nel considerare casi particola- 
ri. Ad esempio se piove a dirotto è prò 
babiie che vi fermiate alla fase 4 rinun- 
ciando all'acquisto oppure,. . incarican- 
do un vostro familiare di scendere in 
strada! 

In effetti si dovrebbero prevedere altri 
casi particolari come ['incontro casuale 
di un conoscente che potrebbe distrarvi 
facendovi rinunciare alla missione da 
compiere. 

in definitiva, quando decidiamo di 
compiere qualche azione, qualunque es- 
sa sia, ci organizziamo, (ripetiamo; il più 
delle volte senza rendercene conto) se- 
condo un ' programma 1 ', vale a dire una 
serie di azioni logiche, da eseguire in suc- 
cessione Tuna dopo Ì T attra. 

In ogni caso ci sarà un'azione da com- 
piere per prima ed una che rappresenta 
l’ultima della lista. Nel caso Fazione da 
compiere risulti diversa a seconda del 
verificarsi o meno di un evento (caso del- 
le fasi N.2/ 4/ 7/) t ci troveremo di fronte 
ad una scelta da effettuare tra le varia 
possibili, runa delle quali tn genere db 
versa dalfaltra. 

11 grafico che deriva dallo studio delle 
azioni da compiere prende il nome di 
diagramma dì flusso appunto perché rap- 
presenta il fluire “logico 11 delle azioni da 
compiere nel corso dello svolgimento del 
compito da espletare. Quelli relativi ai 
due schemi appena visti sono evidenziati 
nelle figure, 

In queste ogni azione è incasellata in 
una forma geometrica unificata di cui 
descriviamo l'uso qui di seguito: 

* Renandolo. Indica un'azione da com- 
piere senza,., discussioni. 

* Rombo. Implica una sedia da compie- 
re. La direzione del flusso prende una via 
oppure un'altra a seconda delle condi- 
zioni in cui si trova l'evento da considera- 
re. Le deviazioni possono essere molle- 
plici e non solo due come comunemente 
si crede. Avremo occasione di verificarlo 
in seguito. 

* Ovvile, Indica l'inizio oppure in fine 
delle operazioni. 

Una breve precisazione 

Abbiamo detto che un programma 
non t altro che un elenco di azioni da 
svolgere in successione. Per distinguere 


la precedente dalia successiva, si ricorre 
alla numerazione delle azioni stesse co- 
me. appunto, abbiamo fatto in prece- 
denza, Anche il calcolatore va program- 
mato allo stesso modo ma, negli esempi 
che seguono, tale numerazione sarà un 
pò bizzarra. Infatti i numeri che indivi- 
duano le azioni (o gruppi di azioni da 
compiere), non saranno consecutivi, nè 
si partirà da! numero 1, lì primo schema 
visto, per esempio, lo scriveremo come 
segue; 

100/ Scendiamo in strada. 

1 10/ Ci rechiamo al Tedi co la. 

245/ Acquistiamo il giornale. 

280/ Torniamo a casa. 

Il perchè di tale insolita^ umerazionc 
risiede nel fatto che ci riserviamo la pos- 
sibilità di inserire, net seguito, alcune fasi 
che possiamo aver dimenticato di inseri- 
re. Se riteniamo, ad esempio, che è indi- 
spensabile controllare anzitutto il pos- 
sesso del denaro, potremo agevolmente 
inserire una riga di azioni numerata con 
un numero inferiore a 100 (prima nga del 
caso appena visto). Questa può essere la 
seguente: 

90/ Controllo del possesso dei denaro 
necessario all’acquisto. 

Se fossimo partiti direttamente col nu- 
mero uno, tale inserimento non sarebbe 
stato possibile se non cambiando la nu- 
merazione a tutte le fasi con notevole 
perdita di tempo, Analogamente altre 
linee di azioni possono essere inserite tra 
altre linee, purché h numerazione di 
queste lo consenta. 

In ogni caso, anche ricorrendo all’in- 
solito elenco, viene sempre rispettato 
l ordine logico. L’importante è, infatti, 
fare dapprima Fazione che possiede iì 
numero più basso: subito dopo quella col 
numero immediatamente maggiore e di 
seguito tutte le altre fino all'ultima. 

Sul prossimo numero di Commodore 
Computer Club, in cui concluderemo la 
"chiacchierata" coi principianti, trasferì 
renio su calcolatore i concetti appresi e 
scriveremo, finalmente, il nostro primo 
programma. 

Nel frattempo, se avete in casa un 
Commodore, digitate e fate girare i pro- 
grammi pubblicati su questo numerò 
Anche se non capile granché del loro 
funzionamento, vi accorgerete che utiliz- 
zare un computerà molto più semplice di 
quanto non pensiate. 


56 - Commodore Computer Ciub 




DIDATTICA 

QUALSIASI COMPUTER 



lj ìi memorizzazione delle variabili rea- 
li nei computer Commodore avviene uti- 
Ir zzando la virgola mobile (o, dallingle- 
se. floating point). 

I n questo articolo descriviamo tale tec- 
nica. la cui comprensione può in partico- 
lare permettere di prevedere e prevenire 
ì problemi legati alla precisione (o meglio 
airi m precisione) che ne deriva (vedi il 
riquadro). 

Per quanto riguarda gli altri tipi di va- 
riabili, i riquadri a corrèdo forniscono 
qualche complemento al Parti colo “Cin- 
que Utility in Basic' 1 (CCC N. 15 pro- 
gramma 2) e richiama rio alcuni oggetti 
già illustrati nel fa rt redo “un po’ d’ordi- 
w trai Bit' 1 (CCC N, 10), 

Se digitiamo; 

X- 1000000000 : PRINT X 
il Commodore passai automaticamente 
alla cosiddetta notazione scientifica, scri- 
vendo 1 E -HÌ9, 

In genere in questo tipo di scritture il 
simbolo F. sta per “moltiplicato per 10 
alla '; il numero che segue la b è detto 
esponente, e deve essere un numero in- 
tero; a! contrario il numero che precede 
la E può avere una parte decimale (even- 
tualmente periodica, o anche peggio. ), 
Naturalmente uno stesso numero può 
avere varie scritture, ad esempio: 


In inglese si chiama 
floating point. Per 
noi, è la virgola 
mobile . Serve per 
memorizzare 

le variabili. 

Ecco come usarla. 

214 t-:-2 = 23.4 E- 1 = 2.34 K 0 = 0.234 E 
1 = 0.0234 E 2 = 

ma tra tutte queste ne esiste una sola che 
rispetta i due requisiti seguenti: 

( i | la scrittura inizia con /ero virgola (0, ) 
ovvero con meno zero virgola (41.) 

( ii> la poma cifra dopo ta virgola non è 0; 

Quando tali condizioni sono rispettate 
si dice che il numero è stato scritto in 
forma normalizzata (si osservi che lo ze- 
ro non possiede forma normalizzata). 

Nel Basic Commodore le variabili rea- 
h sono rappresentate in forma normaliz- 
zata: ma naturalmente iti base 2, min in 
base 10! ( iò significa che Le cifre dopo la 
virgola, anziché i decimi, centesimi eie., 
rappresentano i mezzi, i quarti, gli ottavi 


e cosi via. Inoltre il simbolo E sta ora per 
“moltiplicato per 2 alla ". 

Per capire come un numero verrà me- 
morizzato bisognerà perciò effettuare 
due trasformazioni; da decimale a bina- 
rio, poi da binario a binano normalizza- 
to. Ad esempio: 

-5 -101 -O.101E3 
3.75 11.11 OllllEZ 
4/3 = 1. (3) 1. (Oli 0.(10) E 1 
(periodico) 

0. 1 0,0(001 1 ) 0.(1100) E3 (periodico) 
Il fatto che il decimale 0 1 risulti perio- 
dico in numerazione binaria C causa di 
molti guai,., (vai ancora a vedere il ri- 
quadro). 

Una volta rappresentato il numero in 
binario normalizzato, la tecnica del Basic 
Commodore per memorizzarlo (cioè per 
costruire j numeri V1,.,..V5; not azioni 
del riquadro a pag. consta di 3 fasi: 

* ì, esponente deve essere compreso 
tra -127 e + 127. Se ciò ò vero, si pone V I 
— esponente 4- 12H lé un intero ira I e 
255. che può quindi essere “pokato" nel- 
la cella voluta >. 

Quando l'esponente risulta > 127 vie- 
ne emesso tl messaggio "?OVT-R- 
Fl OW ", Se infine l'esponente è - -127 
si pone semplicemente VI = 0; e quando 
V I =0 ( indipendentemente dai valori a* 


Commodore Computer Ck,b - 5? 



DIDATTICA 


. 


I 


* v " 


| 



fori 


«re WMumMìmì 



fine dette variabili . __ .. 

alTìnziu degli array* La fine douli ar- ™**> mfftnnp 11 

I tny è puntata da (4^50) 


ce nullo* In 
* le matrici sono memori 


■ . 


ii 

ri : % 


b 




Ai due byte che indicano 
tipo deirurray ( "* ^ J ■ 










variabili qui U quarto tipo non r-* 
seguono due byte che esprimono 
solito modo: parte bassa, poi 
t»> il numero di celie i 
me mori nazione 

mente Jo spalto occupato dipende da 

«‘ÉÈ+’sK, „ 

mr m 





come è rtato 

Segue poi un bj 
dimensione drìParray, 
dt indirì: 1 per i vettori, 2 | 
matrici. 

Per ogni indice «a 
mo> una coppia di byte ch J 
«omero di valori che l’Indice steso 
Por assumere (j in più del numero 


ognMndicc • wò a=u«»«rew>cheilva- 

te di queste 



HU 


V - • ■>! 




deH'array sono memorizzati. Ni 

lù indici vengono per primi i 



elementi che corrispondono all'ultimo 
nullo. Tra questi i primi sono 


lii 


i memori //.a/ione di un urray 
richiede ancora 5 
ma per un array 
occupano solò 
e per gii arrav di 
jm I). In parti- 
con grandi 
(compresi 
sant un 

‘ reali, per 

», - < 







non 


1 


i.* 





■ 

- ■ 


m 


•V. *- ' ,1'fl 

,r,5.- V* ì 


suoli da V2,.,. T V5) il valore della varia- 
bile in questione ò assunto essere 0 per 
convenzione. 

Si osservi che, grazie a questa conven- 
zione, risulta possibile trattare anche il 
numero 0 (che non ha forma normalizza- 
ta); c risultano velocissimi test del tipo 
IF X = OTHEN 
e 

IF X < > OTHEN 
richiedendo la sola lettura di VI. 

• 1 restanti valori V2,V3,V4,V5 sono 
visti come un unico blocco di 32 bit. Nel 
secondo di essi si immette la seconda 
cifra dopo la virgola; nel terzo la terza e 
COSÌ via. Se non ci sono 32 cifre dopo la 
virgola, si aggiungono zeri. Se la cifra 

33 fosse un 1 si incrementa la 32, con 
eventuali riporti sulla 31 eie. 

Non abbiamo ancora provveduto a 
memorizzare: il segno, h parte prima 
della virgola, e la prima cifra dopo ìa 
virgola. Ed è qui che si rivela la potenza 
della Scrittura normalizzata. 

La parte intera è inutile memorizzarla: 
la regola (i) ci dice che essa è comunque 
0. 

La prima cifra dopo la virgola c inutile 
memorizzarla: la regola (ii) ci dice che 
essa non c 0; ma in binario ciò significa 
che essa è un L 

fi segno viene memorizzato nel primo 
dei 32 bit a disposizione, con convenzio- 
ne analoga a quella usata per ì numeri 
interi: VI AND 128 varrà Operi positivi, 
e 128 per i negativi. 

Naturalmente, al momento dei conti, 
una volta valutato il segno del numero, 
occorrerà ripristinare 1*1 in prima posi- 
zione (si dice che tale bit è mascherato 
dal segno 1. Complicato? Forse, ma tanto 
a fare i conti ci pensa ì! Computer.,,; il 
lutto è simulato da Basic nel programma 
di pag Ila ricostruzione del numero può 
essere affetta da approssimazioni, ma la 
scrittura binaria normalizzata è esatta. 

Il programma è puramente didattico: 
le linee 3311, 34(ì possonoessere sostituite 
da INPUT A: GOTO I5tl ma così tacen- 
do si perde la possibilità di assegnare ad 
A il risultato di un calcolo. Si Faccia at- 
tenzione al fatto che la variabile A deve 


essere la prima incontrata dal 
programma. 

ÀI RUN, la variabile A valeO. L Se ne 
& già vista la scrittura binaria normalizza- 
ta: (I. ( 1 100) H-3, La cella esponente con- 
tiene perciò -3+128=125. Le celle man- 
tissa dovrebbero essere tutte IKK litoti 
binario = 128+64 +8 +4 = 204, ma nel 
primo byte occorre fare un AND 127 
(segno +) e nel quarto occorre lare un 
+ 1 (il primo bit trascurato è un 1). I 
cinque byte mostrati dal programma so- 
no perciò 125,76,204*204,205, 

11 programma chiede ora se vogliamo 
cambiare A. Rispondiamo l *SF‘ ed asse- 


gniamo ad A il valore -5. Abbiamo visto 
che in binario normalizzato -5 si scrive 
-0.101 E3, Aggiunti gli zeri finali, e la* 
sciato a ì il bit segno si avrà 
V 1=3 + 128*131; V 2— binario 101U000Q 
= 128+32 - 160 V3.V4.V5 sono nulli ed 
il programma mostra appunto i valori 
131. 160.0,0,0: 

Rispondiamo ora “NO" alla richiesta 
di cambiare A, e **Sl T ' alla richiesta di 
cambiare VI V5 e proviamo a “forza- 

re’ 1 in A il valore -4/3 agendo sui 

VI, V 5 Sappiamo che -4/3 sì scrive -1 1 

(10) LI nella cella esponente dobbiamo 
perciò inserire 1+128=129 mentre i byte 


58 - Commodore Computer Club 









DIDATTICA 


mantissa sono tutti binano 10101H 10 = 
128+32 +8+2=1 7U* [I primo hu del pn 
mo byte non va modificato (segno -) 
mentre all'tiltuno byte va sommato 1 

1 primo bit soppresso — 1 ). 

Alla richiesta di V1,,,,,V5 forniremo 
perciò 129, 17(U71U70, 171; o vedremo 
apparire A = - 1. 33333333* 

t ome ultimo esperimento proviamo a 
forzare in A il piti grande numero che il 
Commodore può gestire; VI— 255, 
V2=127 (segno +), V3~255, V4=25S, 
V5=255 : l’esatto valore di A e dato allo- 
ra dalla formula; 

2 * 127*0/2+1/4+1/8+.... + W2T32) = 2 
127*( 1-21-32) «2 [ 127-2 f 95, 

Inserendo i valori 

251127.m255.255, come VI V5 il 

Commodore tornirà A — 170141183 
E +3H ma nella ricostruzione di tale valo- 
re le approssima rioni effettuate nei cal- 
coli intermedi generano un overflow. 


Le variabili i 

I tipi di variabili sono quattro; 

Tipo reale: N I 128. L'interpretazio- 
ne di VI V? e data ut {l'articolo. 

1 ipO intero: NI > 127, La quantità 
VU256+V2, diminuita di 2 1* se VI 
j 128, e il valore della variabile, 

I valori VJ, V4. V5 non sono 
utilizzati, 

l i stringa: N ì < 128, N2 > 127, 
La stringa ha la lunghezza V I; se V 1 > 
o essa e memorizzata in V I celle a 
partire da quella numero \ 2 +256 V 3 
V4 e \ 5 non sono utilizzati. 

Tipo funzione: NI > 127, N2 128, 
Se ad esempio e stato eseguito il co- 
mando DKF KN (\> - 1 + X, la zona 
K ASIt io cui tale definizione e toke- 
ruzzata si trova a VI +256 V2 dii tale 
cella e tokenizzata la prima istruzione 
a destra del segno “eguale ” “ = \ 5 

e il token della prima istruzione ineb 
l'esempio: V 5 = 48 , token della cifra 
1 1: infine V3+256"\4 e Ea creila dove si 
trova if dato V L della variabile utiliz- 
zata ( nel V esempio: il dato VI della va- 
riabile \ t. 


Veniamo ora alla linea lOfM) ed alla 
misteriosa linea 9980. La submarine 
1IHM0 converte un numero Z (intero, ira 
0 e 255 ) nella sua scrittura binaria a H hit: 
con RUN UHM) si può utilizzare (corretta- 
mente) tale subrettine. 

La linea 9980 è un'alternativa (a priori 
lecita, ma pericolosa) alla linea 11)00; con 
RUN 9980 oppure GOTO 9980 si otterrà 
la conversione, seguita ovviamente da un 
‘? RETURN WITHOUT GOSUB' .Pe- 
rò, eseguendo GOSUB 9980 tutto do- 
vrebbe funzionare*.. 

In realtà, esguendo GOSUR9980 
(senza abbreviare il GOSUB c senza 
apazio tra esso e il 9980) lutto funziona 
bene se, alla richiesta input, si fornisce 
un numero di due o ire cifre. Se invece si 
fornisce un numero di una citra appare 
un incredibile "?SINTAX ERRQR IN 
48'* 

Nc riparleremo. 


memoria 

Riportiamo, qui di seguito, un breve 
compendio del l'articolo pubblicato 
sul n. 19 di C.C.C. “un po' (l'ordine 
trai Bit"'. 

A partire dalla celta “puntata' 1 da 
1 45.46 u cioè dalla luca/ ione di memo- 
ria PEEK (45 J +256 PEEK (46), e 
Uno alla cella puntata da (47,48), ogni 
blocca di 7 byte e riservato alla inenm- 
riz /azione di una variabile incl PET i 
puntatori corrispondenti sono (42,43} 
e (44,45 L 

Indicheremo con: 

N I ,\2, V LV2,\ 3A4.V5 i valori onte- 
ili bili tramile PKKK} contenuti in un 
blocco. 

NI e N2 contengono informazioni 
sul nome e sul tipo della variabile; 
V V5 servono a ricostruirne il va* 
lore. Precisamente: 

NI AND 127 e il codice ASCII della 
prima lettera del nome; 

N2 \ND 127 e il codice ASC li della 
seconda lettera (oppure e 0 per le va- 
ria bili etm nome corto, quali 
V.VS.NS) 


„. d 


Sa 






, ma vero 


che. fra le tante. 


fornisca 

■ , ■ 

mento da 



m. ■ 

* i » 

< > 8 per X ovvia- 
re siila scarsa preci- 
SQR dei BASIC 
Coti) inodore, , ^ 

Al coiìtnirio, il fatto che ponendo: 

— 5 : Y = SQR (ZI: X = ÌTY - Z 
ttengfi X< > Ò è inevitabile nes- 

esattameli (e 



ette due ap- 
pensino: ad 
lei comanda pre- 
ottiene X = 0. 
t« che II programmato- 
^tar l i e ,, 11 pericolo,,. e non 

pio il numero 0.1 è un tuo 
buse 18* ma in 
quindi it 
urT appressi - 
X =9,1. 
che un rido 

+V 

I STKP .1 : ; 

t . +- « ^ . \^k, 

nove volte anziché 

Un caso strano di compensazione 
solo pai naie è: 

X = 0.7 ; iFJe : > 10 X THE 

PRINTX- IO - 

eseguilo, ma 11 

comunque 
i ria foghi re- 
Ad esempio 


i 



Commodore Computer Club - 59 





£ 00 REM VARIABILI IN VIRGOLA MOBI 
LE 

i 10 CLR i A = . 1 

115 REM OCCORRE CHE A SIA LA PR1M 
fi VARIABILE DICHIARATA 
£20 B = PEEK<45)+£56*PEEK<48)+2 

130 REM PEEK <X) CON H=B B+4 

FORNISCE VI V5 

140 REM CHE CORRISPONDONO ALLA VA 
RIAB1LE A 

150 PRIWT '‘LETTURA DIRETTA*: PRINT 
''A= "A 

180 PRINT "VALORI VI, V5*. " 

170 FOR X=0 TO 4: PRINT PEEKCX+ 
B> ? 

ISO NEXT: PRINT 

190 PRINT “VALORE RICOSTRUITO 1 * : P 
RINT “A=*: 

200 JF PEEK <B ) =0 THEN PRINT 0! 

GOTO 310 

210 S — 1 ■ IF PEEK (B+ I > > 127 THEN 

S = -l 

220 REM S = SEGNO 

230 2 =PEEK (8+ 1 ) OR 1285REM RIPR 
I STI NO BIT MASCHERATO 
240 2=2/256: FOR X=2 TO 4 : Z =2 + 
PEEMB+X>/£5GtX 
250 NEXT: REM Z® MANTISSA 
260 PRINT S*2*2t(PEEK(6)-123> 

270 PRINT "SCRITTURA BIN.NORM.*: I 
F S=-l THEN PRINT 


2B0 PRINT'0. *; :2=PEEK<B41) OR 12 
8: GOSUB 10000 

£30 FOR X=B+£ TO B+4: 2= PEEK(X 
>: GOSUB 10000: NEXT 
300 PRINT “ *£ t " PEEK <B ) *- 1£8 

310 INPUT 'VUOI CAMBIARE A <SI/NO 
>";A* 

3£0 IF At= “NO THEN 350 

330 PRINT "ASSEGNA UN VALORE AD A, 
POI * 

340 PR INT "ESEGU I s GOTO 150*: END 
350 J=0i PR I NT " VUO 3 CAMBIARE VI... 

. V5 (S/NO> * J : INPUT A* 

360 IF A$="NO" THEN END 

370 FOR X=B TO B+4: PRINT *V"J; 


i INPUT Zi POKE X,Z : J=J + 1 : 



NEXT i 

GOTO 150 


380 

■ 

1 



1000 

INPUT 

Zi GOSUB 

1 0000 + END 

9970 

9380 

d. 

* 

INPUT 

Iiiii 

■ 

■ 

Z : REM A 

CACCIA DI GUA 

9990 



10000 

REM 

TRASFORMA 2 

IN BINARIO AD 


OTTO 

BIT 


10010 

R$C0) 

= "0*? ASCI) 

_« 1 ; * 

10020 

FOR 

Y=1 TO 8: 

A$»AS(Z AND 


1> + 

A$: Z=Z/£ 


10030 

NEXT: 

PRINT A$; 


13040 

RETURN 



Commodore Computer Club è anche su cassetta 


A l prezzo contenuto di I ,5800 <csdu- 
so la spedizione) viene inviata la cassetta 
contenente tutti i programmi pubblicali 
ciascun numero di C.C.C, 

Naturai mente il nastro è strutturato rn 
modi} da venir letto da uno qualsiasi dei 
computer ( f4, 0-12K s Vic-20. c; 16. 
Plus -4 . a patto, ovviamente, che i .listati 
siano ad essi destinati. 

Il lettore che possiede il disk drive pud 
trasferire senza alcuna difficoltà i pro- 
grammi su disco, dopo ave li letti da na- 
sl ro. dato eh e gli stessi Listati non sono in 
alcun modo protetti 



60 - Commodore Computer Club 




SIMULAZIONI 

COMMODORE 64 - CI6/PLUS-4 


Ora 

cannone 

neutronico 

di Antonio Visconti 


Un gioco di strategia 
che mette alla prova 

le vostre capacità di deduzione. 



essimo ha mai osservato direttameli- 
te un elettrone, un protone, o una qual- 
siasi delle tante particelle atomiche sco- 
perte negli ultimi anni. Nonostante tut- 
to, nessuno mette in dubbio la loro esi- 
stenza: le prove sono indirette, ma co- 
munque in equivoca bili. La iraedo lascia- 
ta da un elettrone sul dispositivo di rive- 
lazione rton lascia dubbi ìn chi è capace di 
interpretarla correttamente. 


Il gioco 

Ecco un gioco molto semplice, che vi 
mette nei panni di uno scienziato impe- 
gnato ad indagare sulla struttura atomica 
di un misterioso cristallo. 

L'indagine viene fatta mediarne 
proiettili atomici sparati violentemente 
all'Interno del cristallo stesso. Il punto di 
uscita fornirà, a chi È in grado di interpre- 


tarle, utili indicazioni riguardo la posi- 
zione degli atomi che costituiscono il 
cristallo. 

Le figure a corredo consentono di 
comprendere come l'effetto della colli- 
sione proiettile-atomo sia differente a se- 
conda del punto di contatto, La figura 1, 
in particolare, mostra la variazione di 
traiettoria dovuta alla '"nube elettroni- 
ca", La collisione col nucleo provoca in- 
vece *T a ssorbi mento" (figura 2), mentre 
un particolare tipo di legame dà luogo ad 
una riflessione del proiettile (figura 3). 

Il programma 

13 cristallo è rappresentato da una 
grigli a -scacchiera di dimensioni IO per 
IO: i proiettili dalle lettere dell’alfabeto. 
Sono previste tre opzioni, “spara*', "ten- 
ta \ ‘ basta ”, cui si accede digitando la 
relativa iniziale. 

Selezionando “S", un carattere blu 
compare sull'angolo in alto a sinistra del- 
la griglia. I tasti “<" e spostano la 
lettera lungo la cornice e permettono di 
scegliere il punto di ingresso nel cristallo. 
Premendo la barra spaziatrice parte i] 
colpo. 


R g . 1 



Commodore Comput&r Club - u? 


SIMULAZIONI 


Fig. 2 

















* 





l 



t 













t 


1 


/ 


V 





/ 

/ 

. j 

■V 




9 







9 

n 

9 j t 



\ 

t 

/ 





\ 

\ 

/' 

* 




t 








t 





t 


i 






t 


— 



| t 

1 

1 

L 

1 

| 






t 




t 

— — j— — 

1 

i 

j 

. 1 , 






t 




I 













Per aiutarvi nella visualizzazione* una 
lettera di colore bianco resterà ad indica- 
re il punto d'ingresso, mentre un'altra di 
colore nero resterà ad indicare il punto di 
uscita. Se, lungo la cornice, un particola- 
re carattere compare una sola volta, si- 
gnifìcherà che i] proiettile Astato assorbi- 
to o riflesso a seconda che lì suddetto 
carattere sia bianco o nero. Di notevole 
aiuto sono gli effetti sonori. L urto con- 
tro un elettrone è accompagnato da un 
"PI IMG ", l'assorbimento da parte di un 
nucleo da un,,, “PONG". Se non viene 
emesso alcun suono vuol dire che il 
proiettile ha attraversato il cristallo, 
uscendo dalla parte opposta senza incon- 
trare ostacoli. 

Dopo un certo numero di colpi, se si e 
convinti di conoscere la posizione di un 
atomo, bisogna selezionare T" (tentale 
dare le presunte coordinate. In caso di 
felice deduzione il punteggio si incre- 
menta, altrimenti si ha una consistente 


diminuzione. Attenzione, quindi: ,l ten- 
tare*‘ solo se Si è sicuri. Nel caso facciate 
cetltr, i punti ottenuti sono funzione del 
numero di colpi sparati < pici colpi = me 
no punti) e degli atomi già scoperti (più 
scoperti = più punti). 

L'opzione “B" (basta) serve a chi si 
arrende troppo facilmente, ma è animato 


dalla curiosità di capere come stanno le 
cose. 

Il programma pubblicato è una versio- 
ne unica per Commodore M. C-16 e 
Plus-4, 

Chi volesse modificare il commento 
sonoro deve alterare le apposite routine 
cd in particolare: 

* linee 690-695: azzerano tutti i registri 
delSLD e pongono il volume al massimo; 

* linee 700.710: "PINO" o "PONG' a 
seconda del valore di FR : 

* linee 715-725: commento ad un colpo 
andato a vuoto; 

* lìnee 730-740 commento ad un colpo 
riuscito. 


La strategia 

Gli atomi più superficiali sono più faci- 
li da trovare, per cu; è buona nonna spa- 
rare i primi colpi dagli angoli. Travati in 
questo modo i primi tre o quattro, biso- 
gna far lavorare il cervello ed avere an- 
che un po’ di... fortuna, che non guasta 
mai. 

Non sparare da un punto da cui È usci- 
to un proiettile perchè il percorso di an- 
data e ritorno è univocamente determi- 
nato, per cui viene solo sprecato un 
proiettile. Il gioco finisce quando sono 
stali individuati tutti gli atomi, che sono 
9 t oppure finiscono i proiettili, per un 
totale dì 26. 


Fig, 3 











! l 


! 




— i- — i 













/ 


X 


\ 





— - — 1 

/ 


\ 

/ 


\ 






« 


i 







• 



• 






V 


X 


/ 





V 


/ 

V 


/ 







|f r 









t 

i* 














— * 




t 

i 









n 









t 

1 

* 


— 

— — 



i — — 


n— 

I 

t 

( 


— 


- 



62 Comm odore Computer Club 





SIMULAZIONI 


100 REM CDI1MODQRE SI 
IBI REM C-1G fi PLUS 4 
102 : 

105 REM CANNONE ELETTRONICO 
136 : 

110 REM SIMULAZIONE SEMISERIA 
115 REM DI ANTONIO UI SCONTI 
120 : 

121 PR INTCHRSC 147) "1- COMMODORE 64” 

122 PRIMI ”2- C-16 PLUS-4” 

123 GETAS: IFAS-””THEN123 

124 I FA$“”1 ’'THENMS“1024 ; PDKE53200 , 15 : P0KE532B1 , 15 

125 IFAS- ’’ 1 "THEN; POKEG50 , 126; CO-54 : 5C-SS296 : GOTOl 30 
127 MS- 3072: COLOR0.2, 5: C0L0R4, 2. 5; COLORI , 2 , : 5C-204G 
130 POR I - 1104 : X2S-X2S+CHHSC 175 ; NEXT : X2S-CHRSC 19)-*-X2S 
140 X3S-CHRSC 191+CHRSC 171+CHRSC 17) ; GS-CHRSC 173 

160 »**####***#**»* 

165 OIM Bt 11 , 111 . RRC9), CCC9D 

170 DEE FNPCMS) -M5+40+B0+C+C R-*-l 1 +2 

1 75 PRJMTCHRSC 19) ; GO5UB500 ; GDSUB535 

180 PR I NTCHRS C 161 KSCHRSC 5 1 CHRSC 19 5 ” -RECORO "RECHRSC Jl 5 
IBS GO5UB570: GOSUS6S0 

190 FRI NTX2S ; KS "-SPARA” : PRIMI G$: KE” -TENIA” : PR1NTGS ; KS” -BASTA” 

13S PRIMTCHPSC19) HSKSCHRSC 145 5 CHRSC 5 1CHRS CIBI CHRSC 291 "PUNT ! " ; 

196 PRIMI PU; CHRSC 157 1CHRSC 146) ” , , “CHPSC31 1 

200 GEI AS:IF AS<>"S” AND ASO "T" AND ASO “E” THEN 200 

205 GQSUB5S5 

210 IF AS-”T" THEM 410 

215 IF A$-”B” THEN PR-26 

220 R-l : C-0 : PR-PR+1 ; IF PR> 26 THEM 6O5UB630 : FOR K-l TO 3 : GDSUB730 : NEXT : GQTO620 
225 POKE FNPCMS) , PR: POKE FNPCSC) . 70 
230 GET AS:F1-1 

235 OM C-CAS-CHRSC44) )-C AS-CHRSC 46 ) )"2-CfiI-CHRSC32) 1+3) G0TG245, 2^5 
240 G 07 0230 

245 IF R-0 AND C< = 10 THEM POKE FNPCMS) , 32: C-C+Fl : R— CC-11 )-(C-0) : GOT0265 
250 IF P-ll AND 0-1 THEN POKE FNPCMS) , 32; C-C-Fl . R-l 1* CC-01+CC-11 1 ; G0T02SS 
255 IF C-0 AND R>-1 THEM POKE FMPCM5) , 32 : R-R-Fl : C— C R-0) -CR-1 1 1 : G0T0265 
260 IF C-ll AND R< 12 THEN POKE FNPCMS) , 32: E-E+Fl ; C-ll+CR-1 1 )+ CR-0) ; G0T02G5 
265 POKE FNPCMS) , PR: POKE FNP C SC ) , 70 : GOTO230 
270 F1--1 : GDT0245 
275 F2-0 : POKE FNPCMS 1,32 
2B0 ON F2 GOTO305, 310, 190 

2B5 IF R-0 THEM POKE FNPCMS-1 ) , PR ; POKE FNPC5C-1 1,113: Fl-1 : G0TO315 
290 IF R-l 1 THEN PDKE FNPCtlS+1 5 , PR : POKE FNPCSC+1) ,113; FI— 1 ; G0T0315 
295 IF C-0 THEN POKE FNPCMS-40 1 , PR : POKE FNPCSC-401 , 1 13; F3-1 : Fl-1 : GOTO310 
300 IF C-ll THEM POKE FNP CftS + 40 1 . PR: POKE FNPC5C+40) . 113 : F3-1 : FI — 1 ; GOTO310 
305 GOSUB320; GOTOl 90 

310 IF F3-1 THEM F3 — 1 ; G0SUB375 : GOTO2O0 
| 315 F3-1 : GOSUB340 : BOTD280 

I 320 IF R< 1 THEM POKE FNPCMS-1 ). PR: POKE FNP CSC-1 1 , 0 : RETURN 
I 325 IF R> 10 THEM POKE FNPCMS* 1 1 , FR ; POKE FNPCSC+1 1 . 0 : RETURN 
330 IF C<1 THEM POKE FNPCMS-40) , PR; POKE FNFCSO40) , 0 : RETURN 
335 POKE FNP t NS+40 ) ,PR: POKE FNPCSC + 40) , 0 : RETURN 
340 R-R+Fl : I F R>10 OR R<1 THEN F2-1: RETURN 
I 345 ON GCP.C) GOTO 355,360.355,370 
!i 350 GOTO340 
355 FI — FI 

360 F2“2: FR-200: GOSUB690: GOSUB700; RETURN 
I 365 FI— FI : FP-200 : GO5UB690 ; GOSUB700 ; GOTO340 
370 F2-3: FR-10: GOSUE630: GO5UB700: RETURN 


Commodore Computer Club 63 


SIMULAZIONI 


375 

390 

305 

390 

395 

400 

405 

410 

415 

420 

425 

430 

435 

440 

445 

450 

455 

460 

465 

470 

475 

460 

405 

490 

495 

500 

501 
505 
510 
515 
520 
525 
530 
535 
540 
545 
5S0 
555 
560 
565 
570 
575 
500 
5G5 
590 
595 
600 
605 
610 
61S 
620 
625 
630 
635 
640 
645 
650 
655 
660 
665 


C-C+Fl ; 1F O10 DE C< 1 THEN F2-1 : RETURN 
ON GCR,C) GOTO 350,395,400,405 
6QTG375 
FI— FI 

F3*2 : FR“200 ; GQ5UB590 i GOSUB700 ; RETURN 
Fl — Fl : FR-200 : GOSUBG90 : GOSU8700 : GDT0375 
F2-3: FR"10: GOSUBB90:GD5UB700: RETURN 

PRINTX2S ■ K$" , , . DANNI PRINTGS ;K$ rf LE": PRINTGS ; K$” COORDINATE" 

FOR 1-1 TO 10 : POKE NS+42+2* 1,1: NEXT 
GEI A $:IF AS<"A" OR A THEN 420 
R-ASC CAIE 1-64 

FOR 1-1 TO 10; POKE N5+42^2* I , 32 : NEXT 
POR 1-1 TD 1 0 : POKE N5+42+B0* I , 47+ 1 ; NEXT 
GEI AS-IF A5< "O” OR AS> ”9 11 THEN 440 
C“ASCC AS5-47 

FOR 1-1 TD 10: POKE E1S+42 + B0* I , 32 : NEXT 
60509555 

IFG.CR O < > 4THENPR 1 NTX3$ ; K5" -MANCATO 1 hl : PU-PU-S50 : GD5UB690 ; GO5UB730 : G0T0193 
F4-0:FDR 1-0 TO AI : F4-F4+ CC-CCt li) *C R-RRC I> ) ; NEXT , 

1F F4<>0 THEN PR 1 NTX36 ; KS ”G I A 1 TROVATO f< : GOSUB690 : GO5UB730 ; GOTO190 
PRINIX3S;KS; "-CENTRO f ! - " : PU-PU+ 1 0* C 25“ PR ? +50* AI 
POKE FNF(M5> , 01 : POKE FNPCSO , 70 

PR rNTCHRSC19)H#KSCHRSC 145 )CHR$t 29) "PUNTI : r, PU ; CHRS C157 ) ” . * " 

G05UB715: AT-AT+Ì; CCC AT)-EZ: RRC AT)“R : IF AT<9 THEN 190 
N5-1 : G05U5715 : GOTD620 
C25-CHRSC 32 )+CHR$t 32) +CHREC 32 ) 

BE-C2S + CHRSC17U : FOR J-l TO 9 ; BSi-BS+CHRS C 1 95 ) +CHR5C 21B) : NEXTJ 
CE-C2E+CHRSC 194): FOR J-l TO 10 ■ C$-C$+CHR$(32)+CHR$C 194) : NEXTJ 
ES-C2$+CHRBC176) : FGR J-l IO 9 : ES-ES+CHESC195) + CHREC 178); NEXTJ 
□ È-C2Ì + CHREC 173) : FDR J-l TQ 9 : DS^D5+CHR$C 195) + CHRSC177) : NEXT J 
BS-BS+CHRSt 1951 +CHRS C 1 79> : ES-ES+CHRSC 195 3+CHRSC 174 ) 
D$-D$+CHR5tl95)+CHR$tiB0) 

FOR 1-1 TO 25: K$-K$+CHR$t29) : NEXT : FOR I“1 IO 20 : HS-H$+G$ ■ NEXT : RETURN 

FRINTCHREC 1441CHRSC 1471CHR3K 17) : PRINTES 

FOR J-l TD 9;PRTNTCS; PRINTB^’ NEXTJ 

PRINTCS: PRINTDS 

PR 1NTCHRSC 31 ) : RETURN 

FRINTX3$;K$ M ,B :REn 13 SPACE 

FOR K-l TO 3: PRINTGSKS iJ - M :NEXT 

RETURN 

FOR 1-1 TO 9 

C*-RNOC0)»0+l:RV"RNIK0)+9+l 

1F GCC/s+1 , R’^ + l )— 4 THEN 575 

GCO^+l , R>.+ l)-4 

FOR X-0 TQ t : FOR Y-B TD 1 

A-GCC*+2*X T R*+£*Y3 

IF A — 1 OR A -2 OR A-3 THEN GC C?S+5*X * R3s+2*Y> -3 : G0TQ615 
IF A-4 THEN 615 

6CC£+2*X, R*+H*Y3 — CX-Y)-CXOY)*2 

NEXT : NEXT : NEXT : RETURN 

POR C-l TD 10: FOR R-l TO 10 

IF GCR t C)- 1 THEN POKE FNPCnS) , 70 : POKE FNPC SO 3 , 1 13 : G0T0645 

IF GCR , 0-2 THEN POKE FNPCM53 , 77 : POKE FNPCSO , 113 : G0TD645 

IF GCR, 0-3 THEN POKE FNFCH5 ),BB; POKE FNPC 50 , 1 13 : 60X0645 

IF GCR, 0-4 THEN POKE FNPCflS) , 01 : POKE FNPtSC ) , 70 : GDT0645 

NEXT: NEXT 

PR I NTX25B ; K$ 11 M UUD1 tr : PR INTKS”JEJ GIOCARE “ 

PRINTKS" 3 ANCORA ^ » 

GET A$ ; I F A$< > "S 11 ANO A£<>"N” THEN S60 
IF A$-"tvT THEN PRXNT J, a^:ENO 


64 ■ Commodore Computer Club 




SIMULAZIONI 


570 IF FU> RE THEN RE-PU 

675 60SUB535: PR INTCHRSC 19)KSCHRSC5JCHRSC IBI “ . RECORD '*RE ; CHRS< 31 1 
SS0 FOR 1-0 IO 11: FOR J-0 IO 1 1 : SCI , J)-0: NEXT : NEXT 
605 FOR 1-0 TO 9;CCC 1 )-0: RRC 1 i>-0: NEXT;AT-0: FU-0: PR-0: N5-0 s G0T01B5 
590 IF CD<>64 THEN U0LB: RETURN 

635 FOR I-54B72 TO 54295: POKE I , 0: NEXT : POKE 54296 , 15: RETURN 
700 IF CO< >64 THEN 50UND1 , FR+5 , 10: FORI-1TQ100 : NEXT : RETURN 
705 0-54276: POKE W+2.5:P0KE W-3,FR:P0KE U, 23: POKE 0,22 
710 FOR 1-0 TO 100: NEXT: RETURN 

715 IF COOG4THENFDRI-1TOB005TEP5: S0UND1 . I , 1 : NEXT: RETURN 

720 Uf-54276: POKE y+l,B:POKE U+2,251 : POKE 0,23: ft-14: FOR 1-0 TO NS ; P0KE542B7 , A 
725 FOR J-l TO 250: POKEW-3, J : fl“A+ .05: NEXT : NEXT : POKE 0,22: RETURN 
730 IF COO 54 THEN FORI -500TO1STEP-5: 50UND1 , I . 1 : NEXT: RETURN 
735 0-54276 : POKE 0 + 1,0: POKE 0 + 2, 24B: POKE 0 , 05: I -100 : J-230 

740’ FOR Z-1T025 ; POKE W-4 , I : POKE 0+11 , J ; I- I* .90 : NEXT ; POKE 0,34: RETURN 
750 END 


Fai vedere chi sei ! 

DIVENTA UN ESPERTO IN PROGRAMMAZIONE BASIC 


Se dentri assicurarli artcJrc tu un ruoto da 
esperto m un modernissimo campo di attiviti, 
Scgfl-i Radioelctm ha pronto per te il Corse 
Movi» PARLA BASIC 


7L FUTURO" 

PER LA TUA AFFERMAZIONE, 


) 


Un completo ciclo di sturbo por apprendere 
l 'arsati e la programmazione Basic, 
conoscerne indtspenia- 
bli per comunicare con 
mrcrqeompuiieir, di- 
ventare un esperio e 
servirti di apparecchia- 
tura ancht spegnati- 
ve. In \ì lenoni e ] cas- 
sette prtìgramir tutta 
la teoria e la pratica del linguag- 
gio Basic. Fin dalk- prime leeoni potrai dialoga- 
re con il tuo Commodore c vaiertene per lavo- 
ro o per hobby. 


UNA GRANDE OCCASIONE PER TE, 


Se ancora non hai né il computer Commodore 
né A rcg'Stratoj-e dedicato acce I occasione 
per riceverli subito Se possiedi g-i il computer 
e a registratore dedicato, allora ti minta solo il 
CORSO BASIC, 


UNA SCUOLA SU MISURA 
A CASA TUA , 


Comodili istalliti 6 studio, senza rinunciare 
aSSe tue attua-i ittici. Con Scuola Radioeletira 


impari come c quando vuoi tu. cor tutta l’as- 
sistenza che ti serve. 


UN METODO 

COLLAUDATO DAL SUCCESSO, 



Scuola Rtfdionk-ttra mette a tua d> spot-noni? un 
piano di studio ivan latissimo corredato dal ma- 
terval. piu aggio rmo che resteranno di tua pro- 
prietà Tutta la teoria® la pratica che ser- 
ve per imparare davvero 


UNA REFERENZA 
INDISPENSABILE, 




_ct, 


Il tuo Attestato di Stud-o. che a fine corso, 
restmoftisrà HtuoNveVo di apprendimento 

\ jVANTAGOi “EIETTRACARD“ | 

Uri Club esclusivo, nóftrvttP a tutti gJ: Allie- 
vi Scuoia Ridonerà, che ti dà diritto a tante 
sorprese uniche e sempre vantaggiose. 
f«.W0 GIOVANI COME TE HANNO 
TROVATO LA VIA DEL SUCCESSO 
CON SCUOLA RADIOELETTRA, ORA 
TOCCA A TE QUESTA GRANDE OP- 
PORTUNITÀ, 


SPEDISCI SUBITO IL TAGLIANDO 
RIPRODOTTO A FONDO PAGINA. 
RICEVERAI GRATIS E SÈNZA IMPEGNÒ 
TUTTE LE INFOR NAZIONI CHE DESIDERI. I 


Scuola Radio e Jet ha 

VIA STÉiiONE 5. «Oli* TORINQ TEL (01 1 ■ 47A«1 


CON SCUOLA RADIOELETTRA PUOI SCEGLIERE FRA 
30 OPPORTUNITÀ' PROFESSIONALI. 


Card di Elettronici 

TecrKi'eleLrrtF'C* 

SpeiVncrwile 

tlésrrcncj (ondinufiUfe c 
it'ittetfluiimLiOBi 
ElcUronci digitile 
■e pvtrweflwier 
PiHa Kant 

- Elcdrovei L-idmiruV 
EkUrcftCJ 

- Ttfcv*nc bunco e w 0 

- TtknVQTE 1 CT^Wl 

- AfflpticiKW Ktf« 

- A!U tedclLL 
Ssv'enfti !n»P:n 


Gerii Tetnjio ProfettionilL 

EHltrOICC^tJ 

- Dije|flIlDre rHKJlrtCQ 
pr^prosia 

A»iu*rt d (fccpurire 
«Uè 

hocartld as-COriptiriTOr-: 

- Tecnici: offic'm 

- PfEtrjwj 

- PrO|rìimi«Uii*ne-UJ 
cUttìntc^i a^rero-sO 
Natami ì «Ave 

t, u Vjnrrtf induro 

i^Kyki-Unrtn 


Ciìrti Corrtmcrti ali 

fletei conm^tgsif 

- lUptJlta d lilcrdl 
Dilitógn^ 

- Lkj|ue stròfe* 

Coni Prcfeuuull e Arditici 

- Fsiojrilii banco c itera 
fflWJìfti jùirp-nki tgbrt 
EtatpG rpttiA 

LiptHi n ukticv 
Clci-js a mischci* 


d'iilg -(Èli Hniù-rio drlii Pubblici liJ rur m+,t n rii?" 

Stuoli Aid. wlettri ■ iiiaUjij illi A.I.LCC. iA nwiii io-**’ ita S ih Sewd* pt* C«TÌtp<n'JfflnfMi nwii urnim.v 


□ Si, 


XF37 

Vi prego * Jarmt ivert.jmiii < WU irwgnci il mat^-iaie informilo rditivc * 


Corso di 


COCNOmf _j . 

NOME 


VIA , 

LOCALITÀ 


N‘ 


ETÀ _j AftOFES^ONE >—l — - — i — - 

MOTIVO DELIA RICHJÉ4TA PEFuAVQRG □ m HOB&V □ 




VENDITA PER CORRISPONDENZA 


GRUPPO CONTINUITÀ 

Fornito -senza le 12 baveri!-’ a stilo ricaricatili 
Censente il funzionamento dm Vostro computer 

CnmmgdDrfi! CE 4 a VI C SO ili a$££rt2a 111 CO-TSn- 

tp Durala (il funzionamene 30 minuti. Ri cane fi 
trainila aHmentatore Commodore 


KIT ALLINEAMENTO TESTINA 

Composto dal cacnavìte, nastro di CQrtlrollc e sirurvonro 0 in 
ratina con monitor acetici pcrmntrn partali □ u lineaménto Cg- 
negl Strafori digitali anche con nastri comma rei r- 1 . 


VELOCIZZATORE DI CARICAMENTO FLOPPY 

Gartridge con un insiamo di ulltily n:siflfinri su rps ■uelociz^a'i 
il drivt nel Commodore 6A 

INTERFACCIA RADIO 

Incis-pons.lbile per registrare CO 
registratore Commodore model I 
l ‘C2N" i programmi spedati pt 
■K&ìjk^^i- 1 computer trasmessi dafle em4ten 

6? gM^^v^BMMKS^-ftaE « radio. 


CUFFIA PER 
COMMODO- 
RE C 64 

Leggerissima per- 
metto l'ascolto [Sa r- 
sonalo det compu- 
ter evitarxso di dv 
tt rurbare durame i 
giochi. 


COPIATORE PROGRAMMI 

DiFipns ìiuo hardware pm nitnttimm copie di na- 
stri protetti o lurao utilizando due registratoti 
Comm odore o compatibili . 


DUPLICATORE CASSETTE 

I ndisoensabii e per realizzare ce Ite lume. con s 
rei) latralo^ no rme, -di uri nastro prunetto o et)- 
caricimnnrn lurhn 


Bufi quadri slot 

Art CO 100 

L 

55.000 

forte riaccia : ss su il e 

Ad. CD 101 

L. 

30.000 

Duplicatore cassette 

Ari, CO 102 

L. 

30.000 

Copiatore o-roq re miti I 

Art. CD 103 

L. 

30.000 

Fnlerteccia radio 

Art. CD 1 04 

L. 

30.000 

Kit allinea mento iestlng 

Art. CO 105 

L. 

47.000 

Allmentarore per C64 e VIC 2& 

Gruppo continuità (tornito senja 

Art, CD 1 0d 

L. 

45.0OO 

le 12 batterie a Stilo ricaricatili) 
Ppcco butrono (i2 siilo 1,2 Voti 

Art. CO 10? 

L, 

66.000 

ficai icab ili 

Commutatore antenna 

Art CD 117 

L. 

52.000 

TVi'compoter 

Art. CD 100- 

L. 

9,500 

Tasto rea et 

Art. CD 100 

L, 

5,500 

interfacce Centro n ics 

Art CD H£ 

L, 

104.000 

Espansione d> me moria per C 16 

Velocizjatore di carità menta 

Art CD Hi 

L. 

156.000 

i1ap„ 

tspans=one di memoria per 

Ari. CO 115 

L, 

49.000 

VtC 20 16K 

Ari CD 1T6 

L, 

1 1 2.000 

Modulatore E sre e ulivi? 

Ari. CD 120 

L, 

72.000 

Penna ottica grafica 

Art„ CD 121 

L. 

45.000 

Tavolètia gralita 

Aft. CD 130 

L, 

235.000 

M ulti presa con filtro - ? prese 

Art. CD HO 

L. 

41.000 

Cuffia per Commodore C 64 
Stapii.zzaiore elertromco di 

Art. CD 150 

L. 

13.000 

tensione 50C W 

Art . CD 1 60 

L. 

430,000 

Gruppo di cint incita 60 W 

Art. CD 1 70 

L. 

400.000 

Gruppo di continuità 300 V 

Inverno r 12 Vórt CC. 22Ù Voi! ca. 

Art. CD 103 

L. 

302.000 

SCO Watt 

Art. CD 190 

L. 

207.000 

Cavo ali meni azione 

Cavo drive o stampante 

Art. CD 200 

L. 

4. eoo 

Commodore 

An CD 2QS 

1 . 

6,500 

Proroga per Joystick - mt 3 

AM. CD 210 

L 

25.000 


Prolunga per cava Tv - mt. 3 

Ari. CD 215 

L, 

43,500 

Cavo audio ■ mi. 6 

Adattatore Joistck {Atan e C64 al 

An. CO 220 

L. 

15.50O 

C 16) 

Art. CD 225 

L. 

10.5OO 

Adattatore regialrstore per C 16 

Art. CO 226 ' 

1 L. 

10.506 

Mascherina antw iffeSSO 12" 

Nastro inchi wtratà per Tally - 

Art. CD 300 

L. 

35.000 

mi. ao 

Naslro mchiosrrato per Tally - 

Art. CO 610 

L. 

16.500 

mt. ISO 

Nastro incfiiùsJràtù ptìr Tally 1000 

Art, CD 611 

L, 

16,500 

e HorteywcM 

Mastre inchiostrato per 

Art. CO 612 

L 

9.500 

Commodore MRS SOI 

Mastre ine Moscato per 

Art. CD 614 

L, 

13,000 

Commodore MPS SQ2 

Mastra me h tostato por 

Art, CD ete 

L, 

10.000 

Commodore MPS 503 

Art. CD 6 FS 

L. 

19,500 

Mfiuse? per Commodore C &4 Ari. CO S6Ù 

Pacco carta lettura facilitala 

24 11 ' modulo da 500 logli con 

L. 

240.000 

bordi a strappo 

Supporto stampante porta carta in 

Art. CD 630 

L. 

13.500 

pjexigtà&s 'lume" - normale 
Supporlo stamparne porta caria in 

AM. CD 660 

i. 

59.000 

piesuigtàss ' lume"' -rinforzalo 
Floppy disk 5" singola (accia 
doppia densità "OOP" ■ 

Art. CD 670 

1- 

30.000 

conf, 1 0 pozzi 

Floppy disk 5" singola faccia 
doppia densità "CBS” ■ 

Art. CD 700 

L, 

40.000 

coni, 10 pezzi 

Floppy disk 5" singola tàccia 
doppia densità "vEReATiM" - 

Art. CD 7D2 

L 

33.000 

coni, io pezzi 

Art. CD 704 

L. 

*2 000 


Floppy disk 5 ,r singola taccia 
doppia densità "DVSAN" - 


doni 10 pazzi 

Mastri magnetici C 10 digitali ■ 

Art CD 706 

L. 

$$W< 

oonf. IO pezzi 

Art. CD 712 

L 

20.001. 

Maalri magnatici C 15 digitai 
Coprìtàsliera in pfexiqlass per 

Art. CO 714 

L. 

21 ,001 

CS4 - 06 e VIC 20 

Copriiasfiera in stòffa par 

Art. CD 750 

L, 

1 6-OOf 

C64 - Ciò & VIC 20 

Art CD 760 

L. 

10,501 

Vaschetta porlàltàppy m ptexiglass 



per 40 dischi con chiavo 

Art. CD 770 

c. 

3O.00I: 

Vaschetta pdrtàflPppy iti plexiqlass 



per 90 dischi gnn chiava 

Ari. CD 700 

L. 

37,00t 

KM puIizh testine registratore 

Art CD 615 

U. 

13.501, 

Kit pulizia disk drive 

Art. CD 620 

L. 

26.000 

Kit pulii: a testiera 

Ari CD E 30 

L, 

16.500 

Foratore disk in plastica (per utifiz 




zare la seconda faccia dm dischi) 

Ari CD 640 

L, 

10.000 

Farataré disk in melai lo "lako" 

Art CO 6-19 

L, 

14.000 

joystick; Specirav.-tìea il 

Art CD È5G 

L, 

27.000 

Jcysiitàr a Microswitch 

Joyslirik senza fili con unità 

Art CD 651 

L. 

52.500 

riceverne (funziona a batteria) 

Arf CD 652 

L. 

98. 000 

Joy&te per Commodore 16 
{onrjinaie} 

Art CD 130 

L. 

29.500 


TUTTI I PREZZI SONO COMPRENSIVI DI IVA 
NON SI ACCETTANO ORDINI INFERIORI A L 90,000 
CONTRIBUTO FISSO SPESE DI SPEDIZIONE L 5000 

SI ACCETTANO ANCHE ORDINI TELEFONICI 
' Al NUMEHE 0522/661647-661471 


BUONO DF ORDINAZIONE 

NOME COGNOt.lE 

1 

VOGLIA! 

— - -■ - — r » — ■ - r 

N. 

E INVIARMI IN C 

Art 

ontrassegno 

L 

N. 

Art. 

L. 

INUlHIZJiO 

1 N | 

1 1 1 

N. 

- F . . - — ■ 

Art. 

L. 

C.AP Ciri A PROVINCIA 

1 II 1 1 j 

SPESE SPEDIZIONE L. 5.000 

PAGHERÒ AL POSTINO L. 


COMPUTER SERVICE VIA A. MANZONI, 49-42017 NOVELLARA (RE) -TEL. (0522) 661647 


PERIFERICHE 
QUALSIASI COMPUTER 

Una stella di stampante 

dì Alessandro de Simone 



IVI 

UTAoito spesso, proprio da queste co- 
lonne. abbiamo vivamente sconsigliato i 
nostri lettori dall acquisi are prodotti che 
non fossero di marca Commodore, In 
molti casi, infatti, dopo alcune prove su 
tali apparecchi, ci rendevamo corno che 
la compatibilità non era reale e* nei cast 
più fortunati, era necessario ricorrere a 
programmi in linguaggio macchina che 
adattassero il computer alla periferica in 
prova . 

N^: caso della stampante STAR 5G- 
HX\ invece, non si sono verificati incori- 
vemntì di sorta. 

Abbiamo iniziato a provarla con pìc- 
coli programmi che verificassero la vali- 
dità dei comandi spedali riportati sul li- 
bretto dì istruzioni. La totale assenza di 
incori venienti ci ha stimolato ac ^riìizzar- 


E’ possibile trovare 
in commercio 
periferiche di altre 
marche realmente 
compatibili con i 
computer 
Commodore? E, se 
ci sono, che 
vantaggio offrono 
rispetto alle 
“ originali "? 


la in unione a programmi professionali e 
i nserendo su E retro di un Commodore 64, 
anche cartucce che potevano interferire 
sul Bus seriale di trasmissione dati J ri- 
sultati sono stati i seguenti: 

* riproduzione fedelissima, nella stam- 
pa di listali BASIC, dei caratteri speciali 
del colore, movimento cursore eccetera; 

* funzionamento ineccepibile con ] pro- 
grammi di word processor Easy Script e 
Word Pro III, compresi i caratteri speda- 
li dì stampa in allargato e in tc verse; 

* funzionamento perfetto col program- 
ma Cale Resu ! t in lune le possibili fun- 
zioni di output; 


Commodore Computer Club - 67 



PERIFERICHE 


■“j I tr ’ I ;l I 1 f i"" 1 


1} I 


STAMPA 'ARMALE 


□UESTC E ' UH ESEMPIO DI PILO 
NEAF LETTER QUALI IV 




OLlEnTO f: * 

I I! IMI TÉf 53? EDI Bf 

IZ3 3C SE3' raE 

iT”^ 3fiT BT. er"“ ta Tn ìBI-n? 


~i s -* r a 

” rar— tp r — 1 v : 

- O II — HIT — WT ' 


o 


Questa e ' un Bsemc'ic di stampa in BUSI HESS HQDL 


Lì U€ 


- ■■ -■ ■■ 




t ¥ ^ f t ."' t 
- 1- ._ j. l 


Queste r 

: n ==3‘Tci: iì^p = 


: o:i3"sit= 

■ 1 ** w ^j<r - - 1 L 

* ^ ■ li ■ h T* I* ar ■ ■ ■ 

tè) 


« 

Guasta 

a' un 558fnpia 

di 

Stampa 

enfatirrata. 



88- Commodore Computer Club 








PERIFERICHE 


• nessun problema, addirittura, col pro- 
gramma Prim Shop che, per chi non lo 
sapesse* esegue perfino disegni di vario 
formato, tipo e dimensione in alta risolu- 
zione su I video e in seguito li “scarica” su 
stampante mediante una routine di Hard 
Copy. 

Altri programmi non sono stati provati 
ma è intuibile che nuove prove sarebbero 
risultate superflue. La presunta compati- 
bilità* infatti* cade come una mela mar- 
cia nei casi di Hard-Copy di pagine in aita 
risoluzione. Anche programmi di W/P, 
spesso, non sono ben “compresi” da 
stampanti poco ortodosse. 

Non è questo il caso della STAR SG- 
10C che, in seguito a colluttazioni con i 
colleglli (che la volevano a loro disposi- 
zione in Redazione}, ho portalo a casa 
mia e uso normalmente. 

Avrete notato, anzi, che da un po' dì 
tempo la qualità di stampa dei listati ri- 
portati sulle pagine di Commodore Com- 
puter Club è decisamente migliorata. 
Quei listati, l'avrete capito, sono stam- 
pati proprio con la STAR di cui stiamo 
parla ndo„. 

Le caratteristiche tecniche 

La velocità ( 120 caratteri al secondo) 
è, in effetti, consistente e sottolineata dal 
rabbioso rumore {comunque, contenu- 
to) della testina di scrittura. Questa* di 
ragguardevoli dimensioni, partecipa a 
dare queir immagine di sicurezza e affi- 
dabilità che. insieme al peso della Messa 
stampante, consente di collocarla tra glì 
apparecchi di una fascia “superiore"* 

F' possibile utilizzare fogli singoli e 
pacchi di fogli perforati. La loro lunghez- 
za (11. 12 pollici) può esser fissata da un 
mini deviatore Anche l'avanzamento 
per rigo può esser impostato a 1/6 oppure 
1/8 di pollice in modo da avere documen- 
ti più compatti. 

E 1 ovvio che le precedenti impostazio- 
ni possono esser variate via software. 

Mediante minuscoli deviatori, accessi- 
bili sul lato òstro deiPappareechìo* 6 
possibile* inoltre, selezionare' 


« caratteri “normali” cd "italici" (cioè 
leggermete inclinati a destra, una specie 
dì corsivo); 

* densità normale oppure condensata 
f IO* 17 caratteri per pollice); 

* stampa normale oppure NLQ (Near 
Letter Quality: Qualità simile a quella di 
una macchina da scrivere). In questo ca- 
so ìa testina passa due volte sullo stesso 
rigo e non è più individuabile la matrice 
dì puntini* ma ogni carattere sembra bat- 
tuto da un martelletto: 

* numero di periferica 4 oppure 5; 

* segnalatore acustico di line pagina e 
conseguente inibizione di invio caratteri. 
Il computer, cioè, non manda più carat- 
teri cd attende che venga inserito un 
nuovo foglio. 

La matrice di stampa 

E' di ben 8x 1 1 nel modo standard, 8x6 
in modo grafico, 7x60 (grafica bit image) 
e 17x11 nei caratteri programmabili. Vi 
sono* come à intuibile, discendenti (an- 
che se piccoli) con conseguente elevato 
grado di leggi bilità da parte di coloro che 
sono abituati ai documenti eseguibili alla 
macchina da scrivere, 

La sua programma bilità è piuttosto 
semplice e, comunque, supportata da 
numerosi esempi sul libretto di istruzioni 
che, in accordo alle cattive abitudini, è 
solo in inglese. 

Caratteri speciali consentono la stam- 
pa in allargato (fino a quattro volte), re- 
verse* business mode (maiuscolo minu- 
scolo)* “entrata" in modo grafico* avan- 
zamento di rigo, nuova pagina eccetera 

Indirizzi secondari permettono la scie- 

»■ 

zione del modo testo oppure grafico, la 
formattazione di un particolare formato 
di stampa* il numero di linee per pagina* i 
messaggi dì errore eccetera. 

Nessun comando* m som ma, C stato 
trascurato non solo per rendere la stam- 
pante realmente compatibile col proto- 
collo Commodore* ma anche per sfrutta- 


re appieno le potenzialità del- 
l’apparecchio, 

Un vantaggio non trascurabile 

Se le caratteristiche tecniche della 
stampante STAR non vi convincono a 
sufficienza* basterà la seguente conside- 
razione per far cadere gli ultimi dubbi 
sulla validità del prodotto: il nastro, ele- 
mento spes*so trascurato dal neo- 
acquircme. dovrebbe, al contrario* esse- 
re uno dd primi da teucre in considera- 
zione. Chi lavora, al computer, "consu- 
ma" abitualmente gnffidì quantità di car- 
ta sia per stampare listati che lettere, 
tabelle, documenti ed al irò. Le dolenti 
note iniziano a suonare quando giunge il 
momento di acquistare il nastro di 
ricambio. 

Il prezzo da pagare per l’acquisto di 
cartucce inchiostrate speciali, indispen- 
sabili per talune stampanti, è elevato. Se 
non bastasse, inoltre, troppo spesso è 
indispensabile acquistarle presso negozi 
più che specializzati, esistenti, pratica- 
mente, solo nd|e grandi città. 

La stampante STAR SG-10C* invece, 
utilizza un “normale" nastro da macchi- 
na da scrivere, rintracciabile, a prezzo 
contenuto* In qualsiasi cartoleria. Anche 
nei cast disperati in cui non si riesca a 
rintracciare una bobina perfettamente 
identica all'originale (indispensabile per 
il corretto inserimento neirapposito al- 
loggiamento), sarà pur sempre possibile 
estrarre il nastro da quella nuova ed uti- 
lizzare i supporti di quella vecchia 

Considerando che, per una stampan- 
te. la reperibilità di un nastro inchiostra- 
to è vitale* il giudizio sull'apparecchio 
provato non può che essere positivo, an- 
che considerando il suo prezzo di vendila 
che, per le prestazioni descritte, t supe- 
riore a quello di una stampante Commo- 
dore “originale". 

Per ulteriori informazioni i lettori sono 
pregati di rivolgersi al distributore: 
CLAITRON S,p,a. 

Via Gallarate, 211 
20151 Milano 
Tel. 02/ 301.00.81 


Commodore Computer Club -69 



DIDATTICA 

COMMODORE 64 C-16 Plus 4 


Utilizzo del 

joystick nel 
Commodore 16 

e nel Commodore 64 


di Diego e Federici Carnuta 



1 1 programma rappresenta una base di- 
dattica per il lettore, il quale può aggiun- 
gendovi istruzioni, può renderlo più ver- 
salde cd interessante. 


lì gioco 

Appena dato il RUN. sullo schermo 
appare il contorno entro il quale si svolge 
il gioco. 

Appaiono poi. in posizioni casuali, al- 
cune chiocciole, che rappresentano gii 
oggetti da catturare. In una zona prefis- 
sata dello scherno appare il classico 
“serpentello" che è possibile guidare 
agendo sui tasti Y, B. G, H. 

I.o scopo è quello di cattili are il mag- 
gior numero di chiocciole senza provoca- 
re una collisione del serpente con se stes- 
so ocon il bordo dello schermo. 

Quando le chiocciole presenti sullo 
schermo ne lla prima fase del gioco sono 
siate catturate, si passa ad uno schermo 
con un numeri) maggiore di chiocciole. 

Nulla di nuovo, come potete notare, 
ma il breve programma sarà utilissimo 
per “destreggiarsi 1 *, eoi joystick, rtei 
meandri del BASIC. 


Il listato base 

Prima di affrontare uno studio relativo 
all’uso del joystick, diamo insieme uno 
sguardo generale al programma. 

Nello stendere il listato, abbiamo pen- 
sato di renderlo automaticamente adat- 
ta bile ai possessori del 16 e de! 64 Infatti 
ti, come sì può vedere dalla riga 10 T vi è 
subito un controllo del valore contenuto 


Molti lettori 
richiedono di 
illustrare come sia 
possibile, in un 
videogioco o altro 
programma, inserire 
il controllo tramite un 
joystick. Per 
risolvere il problema 
con il C-16 ed il 
C-64, ecco 
riproposto, un 
classico videogioco 
gestito dalla tastiera 
e le modifiche da 
apportarvi per 
utilizzare anche il 
joystick. 


nella locazione 1 del calcolatore 
{PEEK(1}). A seconda del computer, in- 
fatti, troveremo valori diversi. 

Se in tale locazione ò contenuto il nu- 
mero 21 KJ, allora il calcolatore è un 16 e si 
attribuisce il valore 3072 alla variabile A. 
Altrimenti, ri passa alla riga 20 cti alla 
variabile À viene attribuito il valore 
1024. 

Questa differenziazione è resa neces- 
saria dal fatto che i due computer, pur 
avendo uno schermo di dimensioni idem 
lidie, hanno le posizioni di memoria dif- 
ferenti, Alla variabile A viene quindi da- 
to if valore della prima locuzione dello 
schermo video presente in memoria, che 
corrisponde proprio a 3072 peT il 16 e a 
1024 per il 64, 

Nella riga 30 viene pulito lo schermo. 

Nelle righe 40 u 50 viene costruito il 
contorno dello schermo entro cui si svol- 
gerà il gioco. 

Nelle righe 60, 70 e 80 un ciclo FOR- 
,.,NEXT si occupa di distribuire casual- 
mente sullo schermo un certo numero dì 
chiocciole, che corrisponderà a 5 per la 
prima fase del gioco (la variabile B ò 
uguale a zero) e aumenterà di 2 unità per 
ogni fase successiva (vedere alla riga 111) 
l'istruzione B— B+2). In particolare, si 
noti nella riga 70 la scelta della posizione 
di memoria per mezzo della funzione 
RND(0); quindi si effettua il controllo dì 
posizione libera in quella locazione (il 
valore 32 corrisponde alcarattere della 
barra spaziatrice) Se il controllo ha dato 
esito positivo, allora si passa ainsirimo- 
nc successiva che stampa il carattere del- 
la chiocciola ( ) T altrimenti si ritorna 
all 1 inizio della riga 70 e si ripete 
l T op e razione. 


70 - Commodore Computer Club 



DIDATTICA 


SINISTRA 

T35 


AVANTI 

129 



INDIETRO 

133 


destra 

132 


Tasto “Fìre** premuto 


Dopo a ver da io opportuni valori alle 
variabili l>, A, ed I (riga SO'), si passa al 
coni rollo della posizione attuale del va- 
lore come nulo nella locazione di scher- 
mo davanti alla "testa del serpente con 
le seguenti possibilità; 

a i se tn tale locazione è presente il saio- 
re IbO (riga 100) vuol dire che il serperne 
ha toccalo se stesso od il bordo dello 
schermo, per cui il controllo del pro- 
gramma passa alla riga 180 ed il gioco 
finisce con l'indicazione del punteggio 
raggiunto; 

M se è presente il valore 0 {riga 110) 
allora si è sn presenza di una chiocciola 
ed il punteggio viene aumentato 
(E” F + lll); inoltre si incrementa la va- 
riabile F che rappresenta le chiocciole 
catturate, con un successivo controllò 
che permette di passare ad un altra fase 
del gioco se le chiocciole catturate sono 
tutte quelle presenti sullo schermo: 
c) non si e verificata nessuna delle 
due precedenti situazioni allora si passa 
alla riga successiva. 

Nella riga 120 si stampa una nuova 
casella colorata che rappresenta fava ti- 
ramento del serpente; inoltre viene lei lo 
il valore della variabile AS. F' interes- 
sarne notare che si è usata !a funzione 
GET per leggere il valore di A$: in tal 
modo si evita 1 interruzione dell'esecu- 
zione del programma che avverrebbe uti- 
lizzando. ad esempio, ristiwione 
INPUT 

La variabile AS (variabile siringa > può 
corrispondere ai tasti V, IT (1 oppure H, 
causando uno spostamento del serpente 
rispettiva mente verso l'alto, i l basso, a 
sinistra e a destra. 


Figura 1. Valori assunti dalle variabili 
delia leva del joystick. 

Infine la riga 170 contiene un ciclo 
FOR che provoca il rallentamento Jd 
serpente, ma... attenzione: poiché c pre- 
sente la variabile 13. il serpente andrà più 
veloce in ogni fase successiva del gioco! 

Controlliamo l’tisecitzione del 
programma con il joystick 

C ome abbiamo detto, le righe da 13U ll 
lóti servono a controllare il movimento 


JQY(1) ù J0Y(2) al venere della posizione 


del serpente per mezzo della tastiera. Se 
avete già provata il gioco, vi sarete pero 
accorti che il controllo attraverso i tasti è 
molto Fileno agevole dell'uso del joy- 
stick: vedremo quindi quali sono le istru- 
zioni che permettono di utilizzare que- 
st'ultimo al posto dei tasti. 

Nel C ommodore lft vi sono due varia- 
bili BASIC molto semplici da utilizzare, 
che permettono il controllo del program 
ma tramite il joystick: JOYfl ) per il joy- 
stick inserito nella porta I e JOY(2) per 
quello inserito nella porta 2. 

Il valore assunto dalle variabili è di- 
pende me dalla posizione posseduta dalla 
leva del joystick in quel momento: i valo- 
ri corrisponderli sono riportati in figura 

Le istruzioni da sostituire sono tal- 
me ore semplici da non richiedere 
commenti: 

tìO !FJOY{2) = ITHEND = -4(1 
140 IFÌOY|2) = 5THEND = 40 
150IFJOY(2) = 7THEND = -1 
160 IFJOV(Z) = ITHEND = 1 

Nel Commodore 64, invece, non esi- 
stono istruzioni BASIC che permettono 
di controllare la posizione del joystick, 
ma vi sono due locazioni di memoria, 
una pcrogni joystick, le quali contengo- 
no valori numerici differenti a seconda 
della posizione delia leva. 

t ome sappiamo* ogni locazione di 
memoria è formata da 8 bit. Nelle loca- 
zioni 56320 e 56321 tutti gli K bit sono 
normalmente posti a L rmi quando il 


SINISTRA 

7 


AVANTI 



INDIETRO 

5 


DESTRA 

3 


Tasto “Fire” non premuto 


Commodore Computer Club ■ ? ■ 





DIDATTICA 


AVANTI 
taìt o 



DESTRA 
bit 3 


Figura 2. Ecco quali bit delie locazioni 56320 e 56321 cambiano spostando la (ava 
dal joystick 


joystick viene mosso, uno dei 5 bit più 
' bassi" assume il valore 0. In figura 2 
abbiamo riportato i bit che cambiano in 
funzione della posizione della leva. 

Per poter controllare l'esecuzione del 
programma tramite joystick vi sono di- 
versi modi: uno dei più semplici t quello 
di ricorrere airistruzione AND, Tale 
istruzione presenta qualche difficoltà di 
carattere concettuale, per cui ai lettori 
alle prime armi consigliamo di evitare la 
spiegazione data di seguito ed utilizzare i 
dati contenuti in tabella 1 oltre agli esem- 
pi che seguano per utilizzare il joystick 
Ci limiteremo a dire che l'istruzione 
AND permette di confrontare tra loro 
due numeri nelle rappresentazione bina- 
ria. Possono verificarsi i seguenti casi: 

0 AND 0=0 

0 AND 1 =0 

1 AND 0 = 0 
1 AND 1 = 1 

C ome si vede dagli esempi, l'istruzione 
AND fornisce come risultato il valore 1 
solo se si confrontano due valori uguali 
ad 1. Vediamo ora un esempio su 8 bit: 


re utilizzata anche per confrontare diret- 
tamente due numeri memorizzati duran- 
te urr elaborazione. 

Riferendosi alla tabella 1, le istruzioni 
da sostituire ne! listato pubblicato, valide 
per il COMMODORE 64, sono le se- 
guenti: ( joystick in porta 2) 

I3MF( PEE K (56320 JAN D 1 ) 

=0THEND=-40 -* 

t4U IF (PEE K (56320 ) AN D2 ) 

=QTHEND— 40 

150 IF(PEEK (56320) AN D4 ) 

=0THEND=4 

160 IF{ PEE K (56320 ) AN D 8) 

=0THEND=1 

Attenti a digitare bene le parentesi! 

Nel caso in cui la leva del joystick oc- 
cupi la posizione centrale, tutti gli TF non 
sorto verificati, poiché ì bit della locazio- 
ne 56320 sono "normalmente" posti a t, 
Se la leva è spinta m avanti, il primo bit 
viene posto a 1) e l'istruzione IF alla riga 
13H viene verificata, per cui si ha D— 40, 

Miglioramento del gioco 


sentanone iniziale con istruzioni del tipo 
PR1NT. sia di carattere funzionale che 
rendano il gioco più elaborato. Ad 
ese inpio: 

- memorizzate il punteggio finale dd 
gioco che rappresenta il "record" rag- 
giunto, Il record va aggiornato ad ogni 
Fine partita. 

- oltre alle chiocciole, inserite altre fi- 
gure che diano punteggi diverbi od osta- 
coli che vadano accuratamente evirati, 

- per ì più esperti, inferite una subrouti- 
ne sonora che produca un suono ad ogni 
collisione con una chiocciola. 

Con i! programma proposto speriamo 
di essere venuti incontro a quei lettori a 
cui non basta giocare, ma pretendono un 
uso più creativo del computer. 


VALORE 

POSIZIONE LEVA 

1 

AVANTI 

2 

INDIETRO 

4 

SINISTRA 

5 

AVANTI-SJNISTRA 

6 

INOIETRO-SINISTRA 

e 

DESTRA 

9 

A VANT J -DESTRA 

10 

INDIETRO -DESTRA 

16 

FIRE 

17 

avanti-fire 

18 

INDIETRO-FJRE 

20 

SINISTRA-FI RE 

21 

AVANTI S1N,-F|RE 

22 

IND.-SEN -PIRE 

24 

DESTRA-PIRE 

25 

AVANTt-DESTR A ^ PIRE 

28 

INO -DESTRA-FIRE 

Tabella 1. 

Valori calcolati con 

l'istruzione A ND p&r il Commodore 64 


0000111 (= 7 in decimale) 

000 10 1(1 (= 10 in decimale) 

0010001 (= 17 in decimale) 

La funzione AND putì ovviamente esse- 


li listato che abbiamo presentato £ 
molto semplice e + come abbiamo detto 
al l'inizio, rappresenta un punto di par- 
tenza per elaborazioni più o meno com- 
piesse, Le modifiche che possono essere 
effettuate sono sia di carattere estetico, 
preparando ad esempio una buona pre- 



72 ■ Commodore Computer Club 






DIDATTICA 


1 REM IMPARIAMO AD 
E REM INSERIRE I COMANDI 

3 REM RELATIUI AL JOYSTICK 

4 REM C-16 E COMMODORE 64 

5 : 

6 REM MINI-GIOCO DI FEDERICO CA 
NETTA 

7 : 

10 IF PEEKCD-E00 THEN A-307E:GOT 
0 30: REM PER COMMODORE 16 
E0 A-1024 : REM PER COMMODORE 64 
30 PRINTCHRSC 147) "TASTI : Y , G , 8 , H : 
FOR T-l TO 1000 : NEXT : PRINTCHRS 
C 147 ) 

40 FOR T»0 TO 3S:F0KE A+T,1G0:POK 
E A+360+T, 160: NEXT 
50 FOR T-0 TO 1000 STEP 40:POKE A 
+T , 160 : POKE A+T-l, 160: NEXT: POK 


E A+B97 , 160 
60 FOR T-0 TO 5+E 
70 C-A+RNDC 0)^300: IF PEEKCC)<>32 
THEN 70 

80 POKE C , 0 : NEXT 
30 0-1: A-A+B97:F-0 
100 IF PEEK£A+D)-160 THEN 1B0 
110 IF PEEK C A+D) ”0 THEN E-E+10:F-F 
+ 1 : I F F-6+B THEN FOR T-0 TO 60 
0: NEXT: B-B+E: GOTO 10 
1E0 A-A+D : POKE A , 160 : GET AS 
130 IF A$-”Y” THEN D — 40 

140 IF A$-”B” THEN 0-40 

150 IF AS-”G" THEN D — 1 

160 IF A$-”H" THEN D-l 

170 FOR T-0 TO S0-B: NEXT: GOTO 100 
1B0 PRINTCHRSC147) "FINE DEL GIOCO" 
: PRINT : PRINT”HAI FATTO "E "PUNTI 

li 


Software speciale 


Raffaello: Dipinge sullo schermo con il 
solo joystick senza bisogno di Koala o 
tavolette granché (C64 L, 12,000), 

Banca Dati: Organizza la tua banca dati 
perdonale (C64 t L. Ì2M\ su nasini, i 
40.000 su disco). 

Dìnastupob: La più appassionante ad- 
vcnture del potere per C64 + La cassetta 
contiene anche giochi per C I 6 e Vie 20. 
L. 12.000. 

Gestione familiare: Tre programmi per la 
casa: gestione bilancio, dieta equilibrata 
e scheda sanitaria familiare. (Có4, L. 
12 , 000 }. 

La Voce 2: Un programma ed un nuovo 
comando basic per far parlare il C64, più 
il supergame parlante ■"Mezzogiorno di 
fuoco’'. L. 12.000. 

24 ore basic: Un corso completo di baste 
per Vic2Q, C64. Ciò e Plu54 (L 24 ODO j 


Velocissimo basic; Corso completo di ba- 
sic per C64/128. MSX e Sinclair Spee- 
irutn fL. 24 000 K 

Computer Music: Un completo music 
editor con la più ricca compilation musi- 
cale con brani di: Arcadia, Bach, Baglio 
ni, Baldau Bembo, Band Aid, Beatles. 
Beethoven, Dalla, Duran Durari. Gene- 
si King, Listz, Madonna, Mina, Mo- 


zart paoli. Pmk Floyd, Polite, Pooh, 
Righe ira. Rossi. Simon & Garfunkel, 
Spandati Balle!, Strauss, Usa for Africa, 
Vivaldi, Zeppelin. (C64, L, 12*000). 

Oroscopo Sé: L'oroscopo personale per 
€64/128, C16/PLUS4 e Vie 2 0 (L. 
12. ODO), 

Assembler: Corso completo di Assem- 
bler per C64 {L .12.000) 



Commodore Computer Club - 73 







Parte l'Operazione Fedeltà Systems. 1 premi? 

T anti; una moto Cagiva Eiectra 1 25, printer- plotter e stampanti a marghe- 
rita Commodore, abbonamenti alla tua rivista Systems preferita e libri 
della biblioteca informatica Systems. Partecipare è semplicissimo. 



Raccogli 
i bollini 

dell'Operazione 
Fedeltà 
Systems che 
troverai 






da oggi fino al 31 marzo 1986 - su 
Commodore Computer Club. 
Computer, Commodore, 
Commodore Club. MSX, Personal 
Computer, Sinclair Computer, 
16/48, Special Systems, VR 
Videoregistrareesuì libri Systems. 





incollali sulla cartolina inseri- 
ta in ogni rivista e spedisci- 
la. Ogni mese partecipe- 
ranno all'estrazione 
tutte le cartoline con 
almeno 5 punti. E ricor- 


da: l'abbonamento a qualsiasi 
rivista Systems vale subito 5 
punti. Inoltre tutte le cartoline 
parteciperanno al grande 
concorso finale: in palio una 
potente moto Cagiva Eiectra 12b. 



EDITORIALE SYSTEMS 

“Operazione Fedeltà” 
VJe Famagosta, 75 
20142 Milano 


REGOLAMENTO DEL CONCORSO 

Partecipano all'esitazioni mensili dfllt'OPERÀZSONÉ FEDELTÀ" SYSTEMS lot- 
te te cartoline pervenute con almeno tì punii. 

L' abbotto mente a una qualsiasi rivesta vate 5 punii cubilo. 

I bollini die wn paiono su Computer, Commodore Club VR Videoretu- 

sirare e i libri Systems valgono 2 punti; quelli di Commooore Computer Club, 
Commodore e Sinclair Computer 1 punte; quelli delle cassette Special Systems 
valgono 3 punti. 

tl menilo promi dello esitazioni mensfh è cosi ripartito' 

- dal 1° al S° estratto: 1 slampante Commodore. 

- dal 6° al' 14/ estrado : 1 printer plotter Commodore 

-dal 11 111 al 40" estratto: un libro a scalla deaia bibitoleca inlormatkia Systems 
Oppure a sce la un abbonamento ad una rivista Systems 
Tutte le cartolate inviale partecipano all'estro? rene finale di una molo Cagiva 
Eiectra 125 co 





L’ UTILE 


Enciclopedia 
di routine 


a cura di Alessandro de Simone 



Come realizzare l’enciclopedia ed utilizzarla nei propri listati 


Ai lettoli che hanno acquistato per la prima 
volta questo numero di Commodore Compu- 
ter Club, if lustriamo qui di seguilo, i vanteggi 
che derivano da ila raccolta. 

Questa, a pensarci bene, è la versione 
"superiore ' della rubrica "1 riga 1 ' e potrebbe 
anche denominarsi... "una schermata"! 

Oltre che utili per costituire un'enciclope- 
dia, i brevissimi sotto programmi pubblicali su 
ogni numero, sono anche validissimi stru- 
menti di sludto per coloro che desiderano 
approfondire Se proprie conoscenze del ha- 
sic, esaminando, senza fatica, particolari 
routine o insolite tecniche di programmazio- 
ne 

* Dato che può esser "chiamata" piò di una 
volta nel corso di un programma,, nessuna 
routine contiene istruzioni del tipo DATA op- 
pure DiM, alto scopo di non creare contusio- 
ne col listato principale 

9 Nessuna routine può far riferimento ad al- 
tre routine dell enciclopedia stessa, 

* Nessuna rouline può contenere variabili 
banali (A. A5. eccetera), ma solo variabili po- 
co usate (XI S, Xfl. Y0%, eccetera). 

* Ogni routine deve apparire, par intero, sul- 
lo schermo del computer e consentire, pro- 
prio per questo motivo, di essere esaminata 
comodamente. 

» Ogni routine deve esser numerata secon- 
do uno standard che ha la paritoolarità di 
esser ricordato facilmente 


Rìghé Contenute 

XXV 00 Prima rìg a dd sottoprogramma 

XXY89 Ultima riga utile del sottoprogramma 
XXY90 REM Prima nga di spiegazioni 

XXY99 REM' Nome delia subroutine 

in cui XX sono due valori variabili da 10 a 63, 
Y è un carattere numerico compreso tra 0 e 9. 

Qualsiasi subrettine, in altre parole, inizia 
con un numero, di cinque caratteri, che termi- 
na sempre con "00". La stessa subroutine, 
d'altra parte, ha r ultima riga numerata con 
99 1 *, 

Digrtendo. ad esempio 
USI 10600- 10899 

si avrà la certezza di veder apparire sullo 
schermo, per intoro, la routine il cui nome si 
trova nella riga 10899 

Prima di accedere alla routine è necessario 
assegnare, alle variabili indicate con REM da 
riga XXY89 a XXY98. particolari valori per il 
suo corretto funzionamento, Ai "ritorno" una 
0 più varia brìi conterranno il risultato 
de H' elaborazione. 

In questo modo, per esser più chiari, è 
possibile simulare alcuni comandi di versici r 
basic avanzate oppure, addirittura, cresi re 
nuove e inedite istruzioni 


Ad esempio, il comando; 

SOUND 1,000 5G0 

che, nel C - 16. riproduce un suono di tonalità 
800 tramite la voce 1 per la durata 500, po- 
trebbe venir riprodotta, in un'ipotetica su- 
broutine per il Commodore 64, con- 
X 1 = 1 ;X2=800:X3-500:GOSUB12400 
nell'ipotesi, ovviamente, che fa routine in og- 
getto sia allocata da riga 12400 a t24§9 

l listati pubblicati "girano" su ogni compu- 
ter salvo dove indicato diversamente. 

E ovvio che nel caso del VIC-20, (che. 
come è noto, ha uno schermo di soli 506 
caratteri), le subroutine "universali" funzio- 
nano correttamente, ma non possono appari- 
re per intero in una sola schermata 

Per quanto riguarda la digitazione, ss tenga 
presente che sulla rivista, per motivi di chia- 
rezza, I comandi e le istruzioni basse sono 
separati tra loro da spazi bianchi Nel digitare 
te linee di programma, pertanto, è opportuno 
ignorarli, per non si rischia di non restare in 
una soia schermata. Se, per esempio, legge- 
te: 

12100X1=34: X2 = 5QR(X3) + LOG(Xl 1 

digitate nel modo seguente 

1 2 1 00 X 1 =34:X2=SQR(X3) +LOG{X 1 ) 

senza, cioè, alcuna separazione tra comandi 
ed istruzioni 


Commodoro Computer Club - 75 



LUTILE 


1 1400 Istogrammi 

(Per qualsiasi Commodore) 

Una routine decisamente povera" che consente, tutta- 
via, di visualizzare con la massima semplicità, sullo scher- 
mo, otto dati sotto forma di istogrammi orizzontali. 

Si è fatto ricorso ai caratteri sem ig rafia Commodore e, in 
particolare, agli otto caratteri che consento no di stampare, in 
una singola celta video, da una a otto barrette verticali conti- 
gue. in questo modo, infatti, è possibile visualizzare anche 
porzioni di cursore con l'accuratezza di un ottavo. 

Provate a far girare il sem pi ice demo allegato, Alle doman- 
de sui valori da introdurre rispondete, ad esemplo, con 10, 
10.5, 11. 11.5. 12, 12.5 e zero f0> alle rimanenti. Alle doman- 
de relative ai nomi nspondete PRIMO, SECONDO TER- 
ZO... oppure come prù vi aggrada. 

Vedrete apparire, dopo la digitazione dell'ultimo dato, sei 
istogrammi orizzontali sormontati dal nome e dal valore digi- 
tato corrispondente. All'estremità destra di ciascuna barra 
compare un numero, compreso tra 1 e 8, che ha il compito di 
evidenziare il carattere semigrafico presente alia stessa 
estremità. 

La ricerca del valore massimo è automatica per cui, in ogni 
schermata, vi sarà sempre una barra che occuperà l'intera 
larghezza di schermo Questo accorgimento è stato adottato 
per sfruttare al massimo fe potenzialità di visualizzazione del 
video. 

Non e possibile digitare valori negativi (vengono subito 
trasformati in positivi] come pure almeno uno dei dati deve 
essere non nullo. In caso contrario, come di consueto, la 
routine non viene eseguita e la variabile X0£ conterrà il 
messaggio “ERFT 

A. de Simone 


Collaborazione 
dei fettoni 

La collaborazione dei lettori è gradita purché si provveda 
ad inviare almeno tre sottoprogrammi per volta, su nastro, 
disco oppure output di stampante. I listati di routine che non 
rispettano lo standard adottato rischiano di non esser presi in 
considerazione. 

Tutti i lavori pubblicati verranno compensati con prodotti 
della Systems Editoriale (cassette di programmi, liba, abbo- 
namenti. copie arretrate, eccetera). 


30 

REM 

ESEMPIO D’USO 

BE 

REM 

ISTOGRAMMI 

34 

REM 

QUALSIASI COMPUTER 

« 

9G 

REM 

(PER UIOE0 CAMBIARE 39 


IN E 1 } 


37 ; 

100 POR 1*1 TD B: INPUT "UALORE " ; 

XI CI) 

110 INPUT "NOME " ; X1SC I ) ; NEXT : GDS 
UB 11400: PRINTCHRSC 147) 

HE IF XBS«»ERR" THEN PRFNT”ERRO 
RE NEI DATI IMMESSI " 

115 GOTO 100 

130 : 

11100 X0$*= ” ” : XI (0)-0 : XI C 10) -0: FDR 
Xl«l io B: XK I)-A8SCX1CX1 ) ) : 
NEXT: FOR Xl”l TD 3 

11105 FOR Xl-1 TD B: X1SCXD-LEFTSC 

X1$CX1)+” ”, 1£):N 

EXT : X1$""12315B7B30” 

11410 FDR Xl-1 TD B : I F X1CX1XX1C0 
) THEN X1C0)-X1CX1) 

11411 NEXT : FDR Xl-1 TD B: IF XlCXl) 
>X1C10) THEN X1(10)“X1CX1) 

11415 IF XlC10)-0 THEN X0$-”£RR’’ : R 
ETURN 

1 1420 NEXT: PRINTCHRSC 147 ) ; :Xl-33/X 
1(10): FOR X£-l TD B:PRINTXEi 
XISCXBJXICXB) 

11430 FOR X3-1 TD XI ( XB)*X1 : PR INTC 
HR$C1B)CHR$<3£) ; :NEXTX3:X4=X 
1 ( XE ) *X1 

11440 IF CX4-INTCX4) )»10>-1 THEN P 
R1NTCHRSC146)MID$CX1$ , CX4-IN 
T(X4) )*10, 1) ; 

11445 IF XI C X£ ) -0 THEN PRINTCHRSC1 
57)CHR$C 146) ; 

11450 PRINT: PRINT: NEXTXB 

11460 GET XBS: IF XSS-"" THEN 11460 

11470 RETURN 

1149S REM X1C1) . . . .X1C3) DATI 

11493 EEN X1$C 1 ) . . . . X1SC9) NONI 

11439 REM ISTOGRAMMI 


76 - Commodore Computer Ctub 



U UTILE 


1 1500 Caratteri in alta risoluzione 

(Sofo per C-64) 

Questa routine, utilizzata cor le Routine Grafiche pubbli- 
cate sui N. 14 di C.C.C, permette di visualizzare sulla pagina 
in aita risoluzione qualsiasi frase o messaggio, 

Prima di eseguire il GGSU8 1 1500, è sufficiente assegna- 

100 REM ESEHPIO D * USO 
110 REM CARATTERI IN H , RES . 

120 REM SOLO PER C G4 
130 REM INSERIRE LE ROUTINE 
1 35 REM GRAFICHE DI C . C . C ■ N.14 
140 : 

150 -GRAF1£,0: -COLORI: -CLEAR 
150 +-C I RCLE0 ,0,0,100,100 
170 X5-3; X5-E0: X15- "COMMODORE COMPUTER CLUB” 

180 GOSUOl 1500 : I FX0S- ,p ERR n THENFR I NTX0E : END 
190 STOP 
200 ; 

11500 X0$“ ,,,p : IFX1S-” "0RX6< 0ORXB> 24QRX5<0ORX5> 39IHENX0S- ”ERR RETURN 
11503 IFXE*40+X5+LENCX1SJ> I000THENX0E- "ERR ” : RETURN 
11505 F0KE56334, PEEKt 55334 DAND2S4: P0KE1 , PEEKC 13 AND251 
11510 X0“S7344+X5*B+XG*320;X1-LENCX1S} 

11520 F0RX2-1T0X1 : X5S«MX DSCX15 , X£ t 1 > 

11525 X3-ASC C X2$ ) : I FX3> 53THENX3-X3-64 

11530 FORX4-0TO7: POKEC X4+X0 } , PEÉKC 5354B+X4+X3*B NEXT : X0“X0+S; NEXT 
11550 P0KE1 , PEEKC 1 DQR4 : F0KE5S334 , PEEK( 55334 3 ORI : RETURN 
ì 1590 REM X13B- FRASE DA UI SUA LI ZZARE IN HI -RES 
11591 RE M X5-NUMERD RIGA * X5~NUMER0 COLONNA 
11539 REM CARATTERI IN HI-RE5 


re la frase alla variabile stringa X1S, indicare la riga (X6) e la 
colonna (X5) in cui si desidera posizionare fa scrìtta, 

La variabile - errore X0$ sarà nulla se tutto è in ordine, 
altrimenti conterrà "ERFV. Questo casosi verifica quando la 
variabile X1$ è nulla e quando il messaggio da visualizzare 
non può esser contenuto nei limiti dello schermo. 

G. Castagna 


1 1600 Scomposizione in sillabe 

(Per qual siasi Commodore) 

Un listalo già proposto su pubblicazioni SYSTEMS, Modi- 
ficato e compattato diventa un'utilissima routine, 'Scompo- 
sizione in sillabe' ' rappresenta, anche da solo, un min [pro- 
gramma utilizzabile a tini didattici. 

Alla domanda: 

VOCABOLO? 

potete rispondere sia con una singola parola che con un'in- 
tera frase (Y$), lasciando spazi vuoti tra un vocabolo e l'altro. 
Le sillabe (non più dii 1 ) vengono individuate e assegnate afl 
vettore Y$. 

Variabili utilizzate: XI, YS, XO. X0(). YS(), X$ 

Nel caso vi siano più di undici sillabe, caso rarissimo, sono 
ignorate quelle in più. 

(F> Molinari) 


100 REM ESEMPIO D'USO 
110 REM SCOMPOSIZIONE IN 5ILLAB 
E 

115 REM PER QUALSIASI COMPUTER 
120 : 

130 INPUT "U0CAB0L0 ,r ; YS 
140 GD5UE3 11600: FQR 1-0 IO 10: IF 
YSCI)- ,,W THEN 1-10 

* 

145 PR INI "SILLABA”! ;CHR$C 10DYSC I 
): NEXT: GOTO 130 
150 : 

9999 END 

« 

11600 XI -0 : FOR X3-0 TO 10 ; Y$C X3 ) - " 
”:NEXT; X3-0 

11605 XI “Xl + 1 : I F X1>LEN{ YSO OR X9> 
10 THEN RETURN 


Commodore Computer Club - 77 



L’ UTILE 


11610 FOR X0=0 TO 2:XSCXC)-niD$CYS 
,X1+X0, 1):XS-X$CX0) 

11615 XCX0J=X$=”I " OR X$=”U” OR X$ 
-"O” OR XS-’’A M DR X$“”E”:NEX 
T:IF XC0)=0 THEN 11675 
11665 IF X<1)“0 THEN 11655 
11635 IF XSC0)“” I *' DR X$(0) = ’’U” IH 
EN 11675 

11640 GOTO 11680 

11650 X3=CXC6)”0)+S:ON X3G0T0 1007 
5,11600 

11655 IF XC2>— 1 THEN 11680 
11660 IF X$Cl)-XS<ei THEN 11570 
11665 IF X$C13="S” OR X$C17“"G” OR 
XSC2>«*’R” OR XS C 2 ) = " L ” OR X 
SC21-"H" THEN 116B0 
11670 Y$CX9)-Y$CXS1+XSC01 + XS( 1 1 : XI 
-Xl+1 : X9-X9+1 :GOTO 11605 
11675 Y$CX51-YS(X35+X$t0ì : GOTO 116 
05 

116B0 YS<X5)-Y$CX53+X$C01 : X3-X3+1 : 
GOTO 11605 

11630 REM XSO, YSC) X$,X0,X1,X3, 
X3 

1 1633 REM SCOMPOSIZIONE IN SILLAB 
E 


1 1700 Microcalcolatrice 


100 REM ESEMPIO D'USO 
110 REM MI CROC ALCOL ATRI CE 
150 REM QUALSIASI COMPUTER 
130 : 

140 GOSUB 11700 
150 : 

3393 END 

\ 

117 m FRI NTCHRSC 147 ) : FR INI ” 1 ADDIZ 
IONE” : PRINT"2 SOTTRAZIONE” ; P 
RI NT ”3 DIUI5I0NE” 

1 1705 PR.I NT ”4 MOLTIPLICAZIONE” :PRI 
NT ”5 RADICE”: PRINT”G QUADRAT 
P M :• FRI NT** 7 FINE” 

11710 PRINT:PRINTX3 I, RI5LJLTAT0; ”X3; 

PRI NT; INPUT ” QUALE n ; X3: IF X3 
<1 DR X9> 7 THEN RETURN 

11712 IF X5“7 THEN RETURN 

11713 IF X9>4 THEN INPUT "UAL"; XI; 
GOTO 11755 

11715 INPUT "PRIMO CALORE " ; XI 

11720 INPUT "5EC0N , CALORE '* ; X2 

11730 IF X9-1 THEN X3-X1+X2 : GOTO 1 
1700 

11735 IF X3-2 THEN X3~X1 -X2 : GOTO 1 
1700 

11740 IF X9“3 THEN IF X2-0 THEN 11 
775 

1 174:5 IF X5-3 THEN X3*X1 /X2 : GOTO 1 
1700 


{Per qualsiasi Commodore) 

Consente, interrompendo momentaneamente I 1 esecuzio- 
ne de! programma principale, di effettuare sempiici calcoli 
matematici: somme, differenze, mot iphcaz ioni, divisioni, 
quadrati, radici. 

E* talmente semplice che non c’è bisogno di commenti. 
Quando compare il menu, scegliete l'operazione che volete 
effettuare premendo il tasto corrispondente e Return. Bat- 
tendo in INPUT ì numeri (oppure if numero, se trattasi di 
quadrato o estrazione di radice), avrete if risultato preceduto 
dal simbolo corrispondente all 'operazione effettuata. Ne! ca- 
so venga richiesta un'operazione impossibile (divisione per 
zero, radice di un numero negativo) compare un opportuno 
messaggio 

Banale o utilissima 9 Fate voi. 

Se proprio avete voglia di divertirvi, ricavatene un piccolo 
programma e proseguite nella lista delle operazioni radici 
cubiche, fogantmi, seni, tangenti, fattoriali... e chi più ne ha 
più ne metta’ 

F. Mclinari 


11750 IF X9*4 THEN X3-X1*X2 : BOTO 1 
1700 

11755 IF XS-5 THEN IF X1<0 THEN 11 
775 

11760 IF X9=5 THEN X3-5QR C XI ) : GOTO 
1170© 

11765 IF X9-6 THEN X3-X1*X1 ; GOTO 1 
1700 

11775 FRI NT "OPERAZIONE IMPOSSIBILE 
” ; FOR XX-1 TD 1500 : NEXT : GOTO 
11700 

11780 REM UARI ABILI : X9 T X1,X2 
11799 REM NOME: MI CROC ALCOL AIR I CE 


1 1600 Registra zona di memoria 

(Solo per C-64) 

A volte può sorgere la necessità di salvare una certa area 
di memoria (generalmente RAM) del calcolatore, sia che 
essa contenga semplici dati, oppure un programma rn lm- 




78 - Commodore Computer Club 


L’ UTILE 


gu aggio macchina. Sarebbe veramente uno schedo effet- 
tuare l'operazione di salvataggio se ìf C-64 disponesse del- 
I istruzione BGAVE, comune in altre versioni basic. 

Purtroppo non è cosi, e bisogna arrangiarsi in qualche 
maniera. Vi proponiamo perciò una routine che fa uso dei 
sottoprogrammi LM Kernal per la gestione dei file Le su- 
brouttnes usate sono 

SYS 65466: SETLFS, assegna i numeri logici del file e delia 
periferica in uso (1 per registratore, 6 per drive). 

SYS 65469: SETNAM, prepara i puntatori al nome dei file, 
SYS 65496: SAVE, operazione di salvataggio vera e propria. 

Una trattazione più ampia dell 'argomento, la potete trova- 
re sul numero 20 di C.C C neirapposito articolo dedicato, 
appunto, alle routine del Kernal. 

Non è comunque necessario capire come funzionano le 
rouline in Linguaggio Macchina (L M) per utilizzare il como- 
do softoprogramma proposto. E solo necessari o indicare i 
dati che il computer deve conoscere per effettuare il salva- 
taggio corretto: 

Alla domanda 
NOME DEL FILE ? 

è sempre consigliabile dare un qualsiasi nome se usate il 
lettore a cassette 

Per il disco invece è obbligatorio: se per distrazione invia- 
te una stringa nulla, il programma non fa alcun salvataggio e 
ritorna con un messaggio d'errore. 

Aitre domande vengono poste: 

INDIRIZZO INIZIALE? 

INDIRIZZO FINALE? 

Si riferiscono alle locazioni di memoria di inizio e di fine del 
file. L Indirizzo finale deve essere maggiore di quello mszale. 
Un apposito controllo elimina, ad ogni buon conto, la even- 
tualità di un simile errore, altri me ni i il computer andrebbe m 
confusione. 

Alla domanda: 

NASTRO 0 DISCO 7 (N/D) 

premete il tasto corrispondente alla periferica di cut 
disponete. 

* Come gira il demo. Nel demo dr esempio {righe 100- 
250) sono stati assegnati, ad X3 e X4, gli indirizzi di inizio e 
fine della memoria video In questo modo farete una copia 
esatta di tutto CIÒ eh e compare sullo schermo ai momento del 
salvataggio. 

Per effettuare una prova di funzionamento eseguite nel- 
l'ordine le seguenti operazioni tenendo conto che (R) signifi- 
ca battere il tasto Return: 

* Battete RUN (R) 

* Quando compare il messaggio “Scrivi ciò che vuoi e. in 
seguito, digita RUN150T pasticciate con scritte vane lo 
schermo (anche con eventuali SYNTAX ERRORj Servirà 
per verificare che !a schermata viene effettivamente registra- 
rne, inseguito, caricata. 


• Battete, quindi, RUN 150 

• Quando compare 'Nome del fife’ digitate il nome che più 
vi aggrada e premete Return Indicate in seguito, premendo 
"D" oppre 'N \ la periferica scelta. Seguite (se lavorate col 
nastro) i vari ordini impartiti dal C-64 

• Alla fine lo schermo viene cancellato e compare il messag- 
gio ' Vuoi caricare una schermata? 11 al quale dovete rispon- 
dere 1 S‘\ Indicate il nome del File e premete Return A 
questo punto i! file viene caricato e visualizzato su schermo. 

• Comparirà in re verse il messaggio ,l Per continuare premi 
un tasto'' che eseguirete. La successiva visualizzazione del 
vettore Art) dimostrerà che eventuali variabili definite prima 
del caricamento non sono state alterate. 

Quando, infatti, viene caricato, da programma, un altro 
fi le -program ma. è come se, al termine deli operazione, ve- 
nisse dato un GOTO alla prima riga del nuovo programma 
basic appena caricato. Poiché, nel nostro caso, il program- 
ma da caricare viene ietto con la sintassi ", 1”, il programma 
basic "ufficiale" è ancora quello di prima, Fortunatamente, 
se l'ordine di caricare un programma viene dato sotto pro- 
gramma, le variabili precedentemente dichiarate non vengo- 
no cancellate. Ecco dunque la possibilità di utilizzare una 
variabile numerica (nei nostro caso HH) col significato dr 
FLAG (tdevfatore) Che faccia capire se il programma princi- 
pale {il nostro DEMO) gira per fa prima volta oppure no, 

E' ovvio che. se si desidera memorizzare altre zone di 
memoria, nelle righe 160 e 170, al posto dell istruzione 
PR1NT è necessario assegnare il comando: 

160 INPUT ‘DALLA LOCAZIONE ";X3 
170 INPUT' ALLA LOCAZIONE ';X4 

Per richiamare sn memoria un file registrato in grecai e nza. 
battete semplicemente: 

LOAD l ‘NOMEFILE".8,1 per il disco 
LOAD' NOMEFILE/M.I per la cassetta. 

F. Molina ri 


100 REM ESEMPIO D'USO 
110 REM SALUA PORZIONE DI MEMOR 
IR 

130 REM SOLO PER C64 

131 : 

135 FRINTCHRSC 10) "PER CONTINUARE 

PREMI UN TASTO 11 

136 GET A$:IF THEN 136 

13B IF HH THEN £35 

145 FRINT"5CRIUI CI0> CHE UUUI E 
, IN SEGUITO, DIGITA: RUN 15 
0'* : END 

150 FOR 1-1 TO 10 ; AC I >~I : NEXT 
155 INPUT "NOME DEL F ILE ” ; Xl!E 


Commodore- Computer Club - 79 



LUTILE 


160 PRINT"! NDIRI220 INIZIALE 102 
4”:X3-1004 

170 FRINÌ” INDIRIZZO FINALE 2053” 
:X4-B023 

100 PRINT”NA5TR0 0 DISCO: CN/D) 11 
190 GET X05 : I F X9£<>"N" AND X35< 

THEN 190 
000 GOSUB 11000 

010 IF X0S=”ERR" THEN PRINT"ERRO 
RE" 

000 FRI NTCHR3K 1471 "UUO I CARICARE 
UNA SCHERMATA? C5/N)” 

005 GEI A$ : I F AS-"" THEN 005 
030 IF Aì- ”5" THEN INPUT ''NUME 0 
EL FILE”; Xl$: HH=1 : LOAD Xia^B 
, 1 

035 PRINTCHRSC 147) "ECCO IL PROSE 
GUI MENTO DEL PROGRAMMA" 

040 FDR 1-1 TO 10: FRINTAC I ) ; NEXT 
050 : 

9999 END 

11800 X0$-”":IF X3>-X4 OR CX1S~"” 
AND X9$“"CT) THEN X0$-"ERR": 
RETURN 

11800 X 1 “ 1 : I F X9S-”D" THEN 

$-”0: J, + X1$: CLOSE 15: OPEN 15, 
8,15, ”X3 : CLOSE 15 
11B0S X0£=-X1£: XB-PEEKt53)+856*PEEK 
C54 ) -LÈNt XB3») : POKE 7B0,X0/05 

e 

11810 POKE 781 , X0"FEEKC7BB)*056: PO 
KE 780.LENCX05) : SY555489 : POK 
E 700 ( 1 : POKE 7B1 f Xl 
11015 POKE 7B0 „ 1 : SYS65456 : POKE 054 
, X3/056 : POKE 053, X3-PEEKCE54 
) *056 : POKE 700 t 053 
1 1800 POKE 7B0 , X4/B56 : POKE 781,X4- 
PEEKC7B0 )*0S6 : SYS65436 
11805 IF CPEEKC7Q3) AND 1) OR (ST 
AND 191) THEN 11B35 
11030 RETURN ■ 

11035 X0$"ERR Jt : I F Xl-1 THEN RETURN 
11040 CLOSE 15 : OPEN 15 , B , 15 : I NPUT# 
15*X3$ t X45: PRINTX3S; X4SS : CL05 
E 15: RETURN 

11045 REM UAR1 AB ILI: Xl^XS.XH^XS 
£ , X0£, XI fl X0, X3$ T X4£ 

11050 REM X15; NOME FILE 
11855 REM X3,X4: INDIRIZZI I N I Z E 
FIN 

11B89 REM SAUE PORZIONI DI MEMORI 
A 

80 - Commodore ? Computer Club 


1 1900 Scambia pagine video 

(Soia per C64) 

Come il nome fascia intuire, questa routine permette di 
gestire contemporaneamente due pagine di testo. Spieghia- 
mo subito come utilizzarla. 

La variabile XI è l 'unico parametro che if programma deve 
conoscere, e può assumere due valori: 

Xt =0 memorizza l'attuale pagina presente sul video cancel- 
lando irrimediabilmente l’altra. 

XI =1 scambia fra di loro le due schermate, visualizzando 
quella memorizzata in precedenza. 

A cosa può servire avere a disposizione due' pagine di 
schermo?. Ad esempio nella presentazione di una maschera 
video, Una volta memorizzata, non bisogna più attendere 
che il computer la disegni tutte le volte che ne abbiamo 
bisogno. Una riga del tipo: 

1000X1 = 1 GOSUB 119GQ 

renderà l’operazione praticamente istantanea. Questo gra- 
zie ad una routine che. manco adirlo, è in linguaggio macchi- 
na (L.M.), e lavora su due buffer (“memoria temporanea), 
anzi tre, considerando anche lo schermo, di 1Kbyte ciascu- 
no Il primo è destinato alla memorizzazione: if secondo è 
utilizzato durante gli scambi come memoria temporanea di 
transito. 

I due buffer (2048 byte in tutto), sono allocati nefia RAM 
posta sotto la ROM del sistema operativo. Traduco, nella 
sostanza, il bisticcio di parole: in pratica non viene occupata 
memoria e non vi è alcun intralcio per i programmi basic, 
Diamo un'occhiata alle POKE, abbastanza numerose, 
presenti nella routine 

POKE 679 r 4 numero di blocchi Ogni pagina è composta 
infatti da 4*256=1024 byte. Sarebero sufficienti 1000 byte 
ma è più semplice realizzare un programma L.M. che ne 
memorizzi 1024, 

POKE 251,0: POKE 252,4 byte basso e alto indirizzo 

sorgente. 

POKE 253,0: POKE 254,160 byte basso e alto destinazione 
(le altre righe sono sìmili: cambiano soio gli indirizzi). 

Le locazioni 251 .252.253 e 254 sono dei puntatori in pagi- 
na zero che ci permettono di utilizzare (attenzione, si chiama 
proprio così): (Indirizzamento indicizzato indiretto 
Altra cacofonia, anche peggiore della precedente! 

Questa tecnica (stiamo parlando di programmazione in 
L, M.), ci permette di trasferire porzioni di memoria in maniera 
molto efficente e compatta. Al solito, chi ne volesse sapere di 



L’UTILE 


più. consiglio la lettura begli articoli e rubriche che C C.C 
regolarmente dedica aìl'argomenta In particolare il n. 19. 
dove viene dato ampio spazio proprio ai lipidi indirizzamento 
del processore 6502. 

F. Molina» 

100 REM ESEMPIO Q’USO 
110 REM MEMORIZZA E ALTERNA 
120 RE ri e PAGINE SCHERNO 
130 REN SOLO PER C64 
140 : 

150 PRI NTCHRSt. 147 ) CHRSC 18 ) " PREN I 
UN TASTO” 

1G5 POKE 1054 + RNOC0)*1000, 1 : REN 
CREA PAGINA 1 CASUALMENTE 
170 GET XXSMIF XXS-"" THEN IBS 
190 PRINTCHRSC 13 )CHR$C IBI “PAGINA 
N.l Xl-0tGOSUB 11900 
130 FRI NTCHR® C1471CHRSC101 "PREN I 
UN TASTO" 

205 PDKE 1054+ RNO C0 } *1000 , E : REN 
CREA PAGINA 5 CASUALNENTE 
610 GET XXS : I F XX$“"” THEN £05 
660 PR I NTCHRSC 19 3CHRSC 181 "PAGINA 
N.e ” 

230 X 1 “1 : GOSUB 1 1 900 : FOR 1-1 TO 
1000: NEXT: GOTO 630 
640 : 

9399 END 

11300 X3S-” 15016500104155413300116 
0000174167006177651145553” 

11305 X3S-X9S+ ”5005395435305555305 
5430660B646090165001009001 13 
3001036” 

11310 X7-0:X0-0 

11315 FOR X0-1 TO LENCXSS3 STEP 3; 
X3-UALCniD$CX9$, X0,3) ) 

11950 POKE B80+XB,X9:Xa-XB+l : X7=X7 
+ X3 : NEXT 

11955 IF X704B13 THEN PRINT”ERR X 
9S ” : END 

11930 IF Xl-1 THEN 11345 

11335 POKE 679 , 4 : POKE 551,0:POKE 5 
56, 4: POKE 653,0: POKE 554,160 
: SY56B0: RETURN 

11345 POKE 673,4: POKE 551,0: POKE 5 
55 , 4 : POKE 553 , 0 : POKE 554,164 
: SYS6B0 

11350 POKE 679, 4: POKE 551,0: POKE 5 
55, 160: POKE 553,0: POKE 554,4 
: SYS680 


1 1555 


11991 

11935 

11993 

11939 


POKE B79 , 4 : POKE 551,0:FOKE 6 
55, 154: POKE 553,0: PDKE 554,1 
60 : SY5 BB0; RETURN 
REM UARIABILI: X3S,X7,XB,X3 
, XI 

REN X1=0 MEMORIZZA PAGINA 
REN Xl-1 ALTERNA PAGINA 
REM CSAMBIA PAGINE SCHERMO 


1 2000 Koala- video 

(Solo per C-64) 

11 K o ala Pa inter. con tavoletta grafica o meno, è certamen- 
te uno dei più usati e conosciuti programmi per disegnare in 
alta risoluzione. 

Con un po r di fantasia (e sopratutto pazienza), si possono 
creare disegni multicolori veramente beili, e salvarli o cari- 
carli da dischetto. Qualcuno però si sarà chiesto: “Beilo, ma 
cosa mene faccio se non posso utilizzarli all'interno dei miei 
programmi, dato che per caricarli devo avere in memoria il 
Koala?” 

Risposta: copiate questa routine e finalmente i vostri capo- 
lavori saranno fi pronti per l'uso: Scenario di un gioco, un 
variopinto menù eccetera. 

11 programma contiene una breve routine in linguaggio 
macchina, necessaria per spostare fa pagina video e fa 
memoria colore nelle giuste posizioni (operazione che in 
basic richiederebbe troppo tempo): 

24576 inizio pagina grafica (0Kbyte) 

23552: inizio video (1Kbyte) 

55296: inizio memoria colore (IKbyle) 

infine, con istruzioni POKE e PEEK, viene visualizzata la 
pagina grafica che, per il Koala, è del tipo multicolore. 

Un h awerienza: nella variabile Xi$ dovete memorizzare il 
nome esatto del file registrato, compreso il sìmbolo grafico 
CHfì$(129) all'inizio delta stringa (ottenibile anche con fa 
pressione dei tasti CBM e 1) e gli spazi vuoti; pena la com- 
parsa del messaggio FILE NQT FOUND Ma queste ultime 
informazioni dovrebbero esser superflue per chi possiede il 
Koala. F, Molinari 


im 

REM 

ESEMPIO O'LISO 

105 

REM 

SOLO PER C-64 

110 

REM 

CARICARE UN 

115 

REM 

DISEGNO ESEGUITO 

120 

REM 

CON IL KOALA PAINTER 


185 : 

130 IF XX THEN 137 

131 FRI NTCHRSC1H7} " INSERISCI IL 
DISCO CON UN DISEGNO KOALA E 

PREMI UN TASTO 11 

1 32 GET A$:IF " " THEN 13E 


Commodore Compose t Club ■ 8 1 



L’ UTILE 


134 X1S-CHRSC leai + 'TIC*" : FRI NT "Pi 12005 
TTENDERE 

135 IF XX"0 THEN XX-1:L0AD X1S.0 12010 

,1 

137 PRINT"Onpa AUER 0S5ERUAT0 IL 12015 
DISEGNO" 

140 PRINT’TER RITORNARE IN HODO 12030 
TESTO PREMERE IL TASTO < RETU 
RN> ” 


150 PR INT " PREMI I UN TASTO " 12025 

1S0 GET XXS6 : I F XXS»"" THEN 1B0 
170 GOSUB 12000 

100 GET XX S : I F XXSOCHREC 133 THE 12030 
N 100 1203S 

1S0 POKE 56576, 151 : POKE 53272,21 12040 

200 POKE 53270, PEEKC 532701 AND 2 12045 

39 12050 

210 POKE 53265, PEEKC532653 AND 2 12055 
23 12056 

£15 PRINTCHRSC1473 

220 : 12060 
3 9 SS END 

12000 X3$"” 160000 174 167002 177251 14 12065 
5253200209249230252230254202 
209242036” 12039 

12002 X7-0:X0~0 


POR X0=1 TO LENCX3S) STEP 3: 
X9=UALCMI0$<X9$, X0.3) ) 

POKE 6B0+X0, X9: XB=X8+1 : X7=X7 
+X9: NEXT 

IF X7O3700 THEN PRINT“ERROR 
E” : END 


POKE 673,4: POKE 251,64:POK 
E 252, 127: POKE 253,0:POKE 
254, 32: SYS 600 
POKE 673,4: POKE 251,40:POK 
E 252 ,131: POKE 253,0: POKE 
£54, 216: SYS 600 
POKE 56576,150 
POKE 53272,126 

POKE 53270, PEEKC53270) OR 16 
POKE 53265 , FEEKC 532651 OR 32 
RETURN 


■ 

REM VARIABILI : X3$ , X7 , XS , X0 

, X3 

REM U1SUALIZZA LA PAGINA GR 
AFICA 

REM DISEGNATA CON IL KOALAP 
AlNTER 

REM NOME: KOALAPR INTER C5U 
UIDED1 


Elenco delle routine pubblicate 

Qui di seguito viene riportato l'indice di tutte le routine finora pubblicate 
(fra parentesi il numero di Commodore Computer Club su cui si possono trovare). 


K GALA- VIDEO (27) 

SCAMBIA PAGINE VIDEO (27) 
REGISTRA ZONA DI MEMORIA (27) 
MI CROC ALCOL ATRI CE (27> 
SCOMPOSIZIONE IN SILLABE (27) 
CARATTERI IN HI-RES (27) 
ISTOGRAMMI (27) 

ESAME DIRECTORY (26) 

FUNZ. INV. IPERBOLICHE (26) 
FUNZ.INV. TRIGONQM. (26) 
FUNZIONI INVERSE (26) 


FUNZIONI IPERBOLICHE (26) 
CONVERSIONE DEC-ESA (26) 
CONTROLLO DATA (25) 

IMPULSI SONORI (25) 

REVERSE SCHERMO (25) 

INPUT CONTROLLATO (25) 
INCOLONNAMENTO VIRGOLA (25) 
N. BLQCKS FREE (DISCO) (24) 
INPUT & CONTR/DEFAULT (24) 
ESTRAZ. PAROLA DA FRASE (24) 
CAMBIA COL. BORDO/FONDO (24) 
CORNICE POLICROMA (24) 


82 - Commodore Computer Club 




Software Club 


Le riviste su cassetta delta Systems Edito nate si fondono per prepararsi ad u n ' ìm portante sforzo di diffusione internazionale del 
nostro software , 

Sino ad ora abbiamo offerto ai nostri aie riti due diverse testate su supporto magnetico: Commodore Club e 16/48 . 

La prima era evidentemente destinata agii utenti Commodore , mentre la seconda era diretta a tutti coloro che possedessero un 
compule r Sinckt ir . 

La nuova rivista su cassetta, denominata ' Software Club" f è destinala anche alle persone che possiedono un calcolatore MSX. 

Questa nuova testata sarà la prima ad uscire contemporaneamente nei più importanti paesi europei. 

Poiché ie tre marche, Commodore, Sinclair e MSX , rapprese nta no complessivamente ki porzione più importante del mercato 
europeo degli Home computer, abbiamo ritenuto opportuno fornire un'unico prodotto che fosse in grado di accontentare 
contemporaneamente le tre diverse fasce di utente 

Commodore Club consegna idealmente il testimone a questa nuova pubblicazione su supporto magnetico, netta speranza di 
fornire un prodotto sempre più adeguato alle esigenze di ogni singolo utente. 

Questa nuova veste editoriale servirà ad esaltare ulteriormente t la qualità dei software che vi proporremo nel corso dei vari mesi . 

Ringraziandovi anticipatamente dell* interesse di cui sarà oggetto auesta nuova rivista su cassetta t vi rimandiamo al primo 
appuntamento in edìcola con questa pubblicazione . 

La redazione di Software Club 


FINAJ MENTE 
SOFTWARE CLUB 

Nel primo numero di Software Club ogni 
utente di un modello Commodore (C.64, 
C.2Q e C.ltì) potrà trovare degli argomenti di 
suo interesse. 

Pét quanto concerne il 64, vi proponiamo 
una nuova spettacolare Avventure di stile ti- 
picamente orientale. 

Le qualità richieste per eccellere in questo 
gioco sono: 

intuito, senso de 11 1 orientamento e capacità di 
interpretazione delle immagini. 

Parecchie delle persone che hanno acqui' 
stato un Commodore 64, sono particolarmen- 
te interessate alle sue applicazioni nel campo 
della grafica. 

Già nel passato la rivista su carta Commo- 
dore Computer Club si è occupata di questo 
problema, fornendo un tool di istruzioni 
grafiche. 

La versione che vi proponiamo è molto piu 
interessante rispetto a quella p recedente men- 
te offerta, poiché contempla al suo interno 
parecchi nuovi comandi che prima manca- 
vano. 

A ne he sul Gommmodorc 64 ù possibile rea- 
lizzare un sequenza filmica attraverso un at- 
tento lavoro di programmazione. 

Se siete curiosi di osservarla non mancate a 
questo primo appuntamento. 

Naturalmente anche gii appassionati di vi- 
deo game rimarranno soddisfatti dallo spazio 
dedicato ai giochi di azione. 

Dopo esserci occupati dei pia importanti 
personaggi della narrativa infantile, conclu- 
diamo questo ciclo con Cappuccetto Rosso. 

E' un elettrizzante gioco di azione, intera- 
mente realizzato in linguaggio macchina, che 
richiede prontezza e abilità nel manovrare il 
joystick „ 

Questi sono solo alcuni dei temi pia interes- 
santi di questa pubblicazione, che racchiude 
co m plessi va mente ben 21 programmi, 

Rammentiamo a tutti coloro che possiedo- 
no un computer Commodore 16 che abbiamo 
realizzato per loro un potente programma di 
archivio dati: Data-base 


Ora analizzeremo gli argomenti che verran- 
no trattati nei numeri speciali della nostra 
pubblicazione su cassetta Software Club. 



Dynastopoli 

Questo numero speciale della cassetta è de- 
dicato agli utenti dei computer C64, G20, 
€.16. 

fer quanto con cemt il C.64 potrete trovare 
degli interessanti giochi di simulazione (Dy- 
nastopoli, gioco che da il nome alla cassetta), 
d’azione (castelli, bigio, uomini volanti) e 
programmi di utilità. 

Questa interessante cassetta che non dovrà 
assolutamente sfuggirvi. 


■Gestione domestica 

Nel numero passato di questa rivista, ab- 
biamo descritto particolareggiatamente i pro- 
grammi destinati alla gestione domestica. 

Questo speciale vi consentirà di gestire, in 
maniera accurata, tutti i più diversi aspetti 
della vostra vita familiare (bilancio, dieta, 
scheda medica). 


Velocissimo Basic 

Chi si avvicina per la prima volta al mondo 
dei computer, può incontrare delle difficoltà 
nella comprensione del linguaggio che oceor 
re utilizzare per dialogare con queste 
macchine. 

Questo corso, articolato in 4 cassette e de- 
stinato agli utenti dei computer Commodore 
64, Spcctrum ed MSX, vi guiderà passo per 
passo all' aq udizione di questo nuova lingua: 
il Basic. 

Una delle novità più importanti di questa 
iniziativa consiste nei fatto che non necessità 
di alcun supporto di manualistica. 

Anche coloro che abbiano già confidenza 
con questo linguaggio, potranno trovare degli 
interessanti spunti di approfondimento a II 'in- 
terno di ciascuna lezione. 


La nuova voce 

Quando l’anno scorso proponemmo ai no- 
stri lettori r! programma la voce, che consenti- 
va al computer di riprodurre il nostro modo 
corrente di dialogare, ottenemmo un notevo- 
le gradimento presso tutte le nostre diverse 
fasce di utenti. 



I I ■ | | 


Commodore Computer Club ■ 83 


Memori dì questa eperienza* vi offriamo un 
nuovo prodotto più avanzato e coerente con 
V esigenze dei nostri lettori. 

Nello speciale troverete un nuovo comando 
basic, voce, che vi consentirà di introdurre dei 
commenti parlati a ll intemo dei programmi di 
vostra creazione. 

Inoltre vi proponiamo la prima ad venture 
parlata in italiano, dove j commenti renderan- 
no ancora pili avvincente la vostra competi- 
zione con il computer. 

Non poteva naturalmente mancare un 
video-game che utilizzasse il programma di 
sintesi vocale ciò accentuerà il mordente delle 
diverse fasi di gioco. 

In questa cassetta sono contenute anche 
delle applicazioni inerenti al tema della 
didattica. 

Rammenterete senza dubbio il famoso gril- 
lo parlante : anche su! vostro Commodore 64 
potrete ottenere i medesimi effetti mediante 
questo programma. 


I ■ I I R I I 



I I II RII 





Speciale musica 

Il Commodore 64 È runico dei computer 
appartenenti alla fascia dellhobbismo ad es- 
sere in possesso di un generatore sonoro par- 
ticolarmente sofisticato: il SID, 

Il tema della musica è uno degli argomenti 
più cari alla maggior parte degli utenti di que- 
sta macchina e abbiamo ritenuto necessario 
dedicargli un numero speciale della nostra 
pubblicazione. 

In questa cassetta sono contemplati dei so- 
fisticati programmi che consentono di genera- 
re musica con il Commodore 64. 

Inoltre vi proponiamo un 'enorme varietà di 
brani già composti* che potranno essere sem- 
plicemente ascoltati oppure utilizzati, come 
motivo ricorrente, all'interno di un vostro 
programma. 

Gli autori* di alcuni di essi, sono: 

Musica moderna 

Madonna- Polke -Duran Duran-Band Aid- 
Usa for Africo-Sandy Marton-Spandau 
BalJet-Tina Tumcr-Style Council-Bmce 
Springsteen-King-Jaggere Bowie 


Anni 60/76 

Beatles-Led Zeppe 3 in -Simon and Garfunkel 
Rolltng Stones-Fink Floyd-Genesis 

Italiani 

Battisti- Pao I i- M i n a -B a g ho n i ■ Da È la- Vasco 
Rossi-Pooh-Vanoni-De Andre- Dario Baldan 
Bembo 

■p 

Tutto il lavoro di creazione di questo speciale 
è stato coordinato dal famoso cantante e auto- 
re Dario Baldan Bembo. 

O roscopo 64 

Anche un computer può contribuire ad ali- 
mentare l 1 atmosfera natalizia. 

In questa cassetta, assieme a degli interes- 
santi giochi di società* troverete un precisissi- 
mo programma che vi fornirà le previsioni 
astrali per tutto il prossimo anno. 

Buon divertimento. 


Speciale utility 

Molte volte vi sarà capitato, utilizzando un 
Commodore 64. di aver bisogno di un pro- 
gramma che vi agevolasse nello svolgere de- 
terminate operazioni. 

Tramite questa cassetta potrete usufruire di 
potenti programmi che renderanno di parec- 
chie volte più veloce il caricamento da regi- 
stratore o da disco. 

Inoltre avrete la possibilità di usufruire di 
un editor che vi consentirà di lavorare su 80 
colonne durante ogni fase di utilizzo del vo- 
stro computer. 

Queste sono solo alcune delle utility che vi 
proponiamo in questo numero speciale della 
nostra pubblicazione, mentre tutte le altre 
rappresenteranno una piacevole sorpresa per 
ciascuno di voi. 



Software Club 


Rivista su nastro destinata agli utenti 
Commodore* Sinclair, MSX i quali* non 
volendo digitare lunghi listati ma preten- 
dendo sofwarc di un certo livello, non si 
accontentano dei soliti giochi ni (ci sono 
però anche quelli.,. ) 

Applicazioni particolari (come grafi- 
ca, musica, word/ processor, data/base* 
spreadhseet, mini gestionale e tanti altri ) 
rappresentano il punto di forza di questa 
rivista su cassetta al prezzo imposto 
sfiora il ridicolo: L,7000 per le 
zioni "normali' * e L, 12000 per 3e 
eia li" contenenti, cioè* software di 
colare pregio. 











IN CLASSE 

PROVATI PER VOI 


Fare i compiti col C-64 

Alessandro de Stmone 


Può il tuo computer aiutarti nei lavori 
scolastici da svolgere a casa? 

I prodotti della Marpesoft 
sembrerebbero dire di si.... 



L a Marpesoft Centro Software Didat- 
tico si presenta sul mercato con un grup- 
po di prodotti destinati ad applicazioni 
scolastiche, 

I “volumi” da noi provati si riferiscono 
a cassette, da caricare col solito registra- 
tore, che trattano diverse discipline; In- 
glese, Italiano, Fisica, Matematica, Geo- 
grafia, Storia, 

La struttura dì ogni programma è sem- 
pre ìa stessa: caricato il programma (che 
parte automaticamente al termine dell o- 
perazione) compare un menu con un cer- 
to numero di scelte tra cui, ovviamente, 
le istruzioni per un corretto utilizzo del 
programma 

La metodologia utilizzata è quella del 
questionario a scelta multipla, vale a dire 
una domanda - esercizio seguita da tre 
risposte possibili contraddistinte ciascu- 
na da un numero. Premendo uno dei 
tasti idonei per indicare la risposta rite- 
nuta esatta, compare il messaggio esatto 
oppure errato seguito, o meno, dalfindi- 
cagione della risposta corretta, 

E' infatti possibile, all'Inizio, richiede- 
re che la risposta esatta, in caso di errore, 
venga evidenziata oppure no, come pure 
è possibile “passare” alla successiva do- 
manda rinviandola alla fine dell'eser- 
cizio, 

E' inoltre facoltà dello studente fissare 
il tempo massimo di 15 secondi entro cui 
assegnare la risposta. 

Le domande per ciascuno dei sette 
“capitoli" sono 15 e non sempre sempli- 
cissime, 

Indichiamo di seguito ciò che compare 
in una videata del corso di Inglese in 
modo da rendere l'idea di come È struttu- 
rato il programma: 

WHEN HE IS HE GOES IO RED 

1 RIGHT 

2 THIRSTY _ 

3 SLEEPY 

Quafè la tua risposta? 

La risposta esatta, per chi conosce l’In- 
glese, è La terza ed è quindi necessario 
premere il tasto “3” per ottenere in ri- 
sposta il messaggio “ESATTO" ed il 
passaggio alla domanda successiva, 

Alla fine de 11' esercita /ione viene indi- 
cato il numero delle risposte esatte, quel- 
lo delle errate ed il tempo trascorso. 

Nonostante, come era intuibile, i pro- 
grammi esaminati non si sostituiscano ai 
libri di testo nè tantomeno svolgano i 
compiti assegnati a casa dai professori, 
purtuttavia possono rivelarsi utili come 
“ripasso” di argomenti precedentemen- 
te affrontati a scuola. 


Commodore Computer Club - 85 

4 



GIOCHI 

COMMODORE 64 


Attacco 

aereo 


di Carlo e l^orenzo Barazzetta 


Un avvincente game 
realistico e di 
notevole 

animazione scritto in 
un pugno di righe. 



u esito gioco, in parte in BASIC e in 
parie in linguaggio macchina, consente 
anche ai lettori inesperti di apportare 
modifiche grazie aDe numerose REM 
che indicano le POKE da alterare. 

Risulta quindi semplice cambiare i co- 
lori degli aerei, i loro ritardi negli sposta- 
menti (t relative difficoltà dì manovra), i 


volumi sonori degli effetti “speciali" 
eccetera. 

Mediante i tasti “IT ed "N'\ guidate 
un aereo che deve sfuggire alle collisioni 
con altri aerei (sprite) che sopraggiungo 
no. Potete, a vostra volta, posizionarvi 
alle loro spalle e sparare col tasto Shift, 
Immediatamente partirà un proiettile 


che, raggiunto 1 aereo avversario, gli 
cambierà colore. Se, invece, urtate con- 
tro gli aerei, esplodete ed il gioco rico- 
mincia premendo il tasto F7. 

Simpatico il rumore dei jet* davvero 
realistico, e nuova è r animazione del- 
l'aereo che, nello spostarsi a destra c a 
sinistra, si inclina come se fosse uno 
“vero 1 *. 


PRINT 

S30 PR I NT "USA I TASTI <E> E”CHR$ 
02 ) ; 

240 PRINT ”< N> PER SPOSTARTI ” : PRI 


100 REM COMMODORE 64 
110 REM ATTACCO AEREO 
1B0 : 

130 SYS65H09: REM AZZERA SPI TE 
140 H=2040: P-16120: K=36B64 
150 U-5324B: 91-54272 
160 FOR A-0 TO 24 ; POKE SI+A,0:NE 
XT 

170 POKE U+32 , 0 : REM COLORE BORO 

□ 

100 POKE U+33 , E : REM COLORE 5FQN 
DO 

190 POKE 646, PEEKtU+32) AND 15 
200 PRINT : PRI NT "ATTACCO AEREO (A 
TTENDERE 127 £ 327) PRINT 
210 PRINT"SCR ITTO DA CARL0”CHR9EC 


NT 

250 PRI NT "USA IL TASTO <SHIFT>”; 
260 PR INTCHRS ( 32 ) "PER SPARARE” :P 
RINT 

270 FOR A“0 TO 127: READ B:PRINTC 
HR$ C 1 9 ) A 

2B0 IF B>-0 AND B<256 TKEN 300 
290 PRINT "ERRORE NEL BLOCCO 1”:E 
ND 

300 C-C+B:POKE P+64+A,B:NEXT 
310 IF COB4B4 THEN 290 


32) ; 

220 PR INT”E LORENZO BARAZZETTA” 


320 FOR A-0 TO 63: POKE P+A,0 : NEX 
T 

330 FOR A-l TO 24 5TEP 3: POKE P+ 


86 - Commodore Computer Club 







fl.lG: 

NEXT 



340 

C-0:FOR A-0 TD 327; READ E: 

PR 


I NTCHRS C 19 TAEC 103 A 


350 

IF B> 

■*0 AND B< 256 

THEN 370 


360 

PRINT 

"ERRORE NEL 

BLOCCO 2” 

:E 


ND 




370 

C-C+E 

L POKE K+A , E : 

NEXT 


3B0 

IF C< >30380 THEN 

360 


330 

POR A 

i-0 TO S0:FQR 

E— 1 TO 

1 

400 

PDKE 

E , PEEKCP+65+B + A*33 


410 

SY5K: 

POKE C P+193“ 

B+A*3 3 , PEEK 


C7B01 




420 

NEXTB, A;SYSK+9 



430 

PDKE 

K+ei , i6:REn 

RITARDO 

GE 


NERALE 



440 

PDKE 

K+31, 40: REH 

RII, SPOSTA 


MENTO 



450 

POKE 

K+3B , RB : REM 

TASTO SIN! 


STRA 




460 

POKE 

K+46, 39: REH 

TASTO DEST 


RA 




470 

POKE 

K+79 , 12 : REM 

RITARDO 

PR 


□IETTILE 



4B0 

PQKE 

K+240 , 00: REH 

RII» SPOSI 


.AEREI 



490 

POKE 

K+330 , 32: REM 

RITARDO 

A 


ERED 

1 



500 

POKE 

K+331 , 40: REM 

RITARDO 

A 


EREO 

2 



510 

POKE 

K+332 , 49; REM 

RITARDO 

A 


EREO 

3 



520 

POKE 

K+333,55: REM 

RITARDO 

A 


ERED 

4 



630 

POKE 

K + 334 , 64 ; REM 

RITARDO 

A 


EREO 

5 



540 

POKE 

K+335 , 72 : REM 

RITARDO 

A 


EREO 

6 




550 PR INTCHRE £ 147 ì ■ : POKE U+22,17 
5B0 POR A“1 IO 2S;FEINT 
570 PRINTSPCCR0)CHR$Cl8ìi : POR B- 
1 TD 11 

500 PR I NTCHRS C 32D ; ; NEXTB , A 
550 PR I NTCHRS C 13 > , 

600 PR I NTSPC C 31 }CHR$( 10 ) 11 PUNTI 11 
610 PRINT5FCC315CHRSC1B3 "00000” 
620 PDKE U , 129 : PDKE U+1,140 
630 POKE 0+39,0:2 Eh COLORE AERE 
0 

640 POKE U+HB , 1 : REM COLORE PROI 
ETTILE 

650 POR A-2 TO 15: POKE U+A,1:NEX 


T 

660 POKE U+27 f 255 
670 FOR A“0 TO E: POKE' H+ A, 254: NE 
XT 

600 POKE H+7,252 
650 POR A-0 TO 10: POKE 32750+6,1 
: NEXT 

700 A-12: REM UOLUME MOTORE 
710 POKE 51+5,0: POKE 5I+E,A*16 
720 A-12 : REM UOLUME PROIETTILE 
730 POKE SI +15,0: POKE 51+13 ,A+1G 
740 POKE 51+14, 555 : POKE 31+15,55 

S 

750 A~B:REM UOLUME 
7E0 POKE 51+24, A OR 12B: POKE S3+ 
18, 129 

770 POKE 31+4,123 

700 POKE U+21 , 127: POKE U+30 , 0 

780 SYSK+13 

000 POKE 51+4 , 126: POKE 51+11,32 
010 A“15 : REM UOLUME SCOPPIO, 

020 POKE 51+5,15: POKE 5I+E,A*16+ 
8 

030 PDKE 51+1, 1 : POKE 51+4,123 
B40 FOR A-l TD 100: POKE H , RNDC 1} 
*16+64 

050 POKE U+30 , RNDC 1 >*16 

060 NEXT : POKE SI +4 ,128 

B70 POKE U+21 , PEEKCU+21 3 AND 254 

000 POKE 130,0: PRIMI 

830 PR I NTSPC C 30 3CHRS C 18 ) "PREMI F 

7 , 

300 A-3 : REM TASTO PER RIPARTIRE 
310 IF PEEKCH035<>fì THEN 910 

920 POR A-l TO 9 : PR I NTCHRS C 157 1 ; 

: NEXT 

930 POR A-l TO 0: FRI NTCHRS C 321; : 
NEXT 

940 GOTO 590 

950 REM INIZIO DATI BLOCCO 1 
360 DATA 0, 15,0,0, 16,0,0,56,0,0 
,56,0 

370 DATA 0,56,0,0, 56 ,0,0,32,0,0 

, 20,0 

3B0 DATA 0 , 150 ,0,0, 150 , 192 , 1 , 24 
7 1 64 

930 DATA 1,247,64,3,251, 120,3,2 
51 , 12B 

1000 DATA 7,125,132,7,125,132,6, 
55, 132 


Commodore Computer Club -87 




GIOCHI 


1010 

DATA 

0,40,0,0,76,0,0, 142 , 0 , 


0,209 

i 


0 , 142 , 0 

1280 

DATA 

13, 173,21,206,41 , 127, 1 

1020 

DATA 

0,0, 16,0,0, 16,0,0, 56 , 0 


41 , 21 



„ 0 , 56 , 0 

1290 

DATA 

208, 163,32,141 , 11,212, 

1030 

□ AIA 

0,56,0,0,124,0,0,236,0 


173 

k 


,1,63,0 

1300 

DATA 

30, 20B, 74, 144,1 , 96, 10, 

1040 

DATA 

3,69, 120,27,69, 176,23, 


10 1 144 


125 

1310 

DATA 

36,141,2,128,162,5,14, 

1050 

DATA 

208 ,31 , 125 , 240 , 63 , 255, 


2, 12B 



248 

1320 

DATA 

144,3,32.27,145,202,16 

1060 

DATA 

126, 124, 252, 252, 124,12 


, 245 



6,240 


1330 

DATA 

162,4,254,111,4,189,11 

1070 

DATA 

124,62, 240 ,56,30,0,40 , 


1,4 



0,0 

1340 

DATA 

201 , 1B6, 208, B, 163*, 176, 

1BB0 

DATA 

238,0, 1 , 239,0, 1 ,239,0, 


157 



0 

1350 

DATA 

111,4.202,16,238, 152,5 

1080 

REM 

FINE DATI BLOCCO 1 


,222 


1100 

REM 

INI2I0 DATI BLOCCO 2 

1360 

DATA 

3, 12B, 20B, 29, 189, 74, 14 

1110 

DATA 

162,7,6,2, 106,202, 16,2 


5,157 



50 „ 96 

1370 

DATA 

3, 12B, 138,72,10,170,22 

use 

DATA 

24,162,62,62,192,63,20 


2,3 



2, 16 

g 

1380 

DATA 

208 , 20B , 12 , 173 , 27 , 212 , 

1130 

DATA 

250,96,216, 160, 1E, 136, 


157 

» 



208 


1330 

DATA 

2 , 208 , 104 , 72 , 170, 32 , 27 

1140 

DATA 

253,206,0,129,200,43, 1 


, 14S 



69,40 

1400 

DATA 

104 , 170 , 202 , 16 , 219 , 206 

1150 

DATA 

141 ,0,1 28 , 165 , 203 , $01 , 


,3,128 


29,208 

1410 

DATA 

208,41 , 163,80,141 ,9,12 

1160 

DATA 

4, 169,253,208, 10,201 , 3 


0,162 



9, 20B 


1420 

DATA 

5,189,249,7,56,233,254 

1170 

DATA 

4 , 169,255,208,2, 169,25 


, 1SB 



4 , 141 


1430 

DATA 

130,72, 10,170, 152,24,1 

1180 

DATA 

24B , 7 , 56 , 233 , 254 , 24 , 10 


25,2 



9,0 


1440 

DATA 

208,157,2,200,104, 170, 

1190 

DATA 

20B ,141,0, 208 ,74,74,14 


173 



1,1 


1450 

□AIA 

£7,212,41 , 63,208,3,32, 

1200 

DATA 

212,206,1,126,208,117, 


48, 145 

- 

168 

1460 

DATA 

£02,16,222,76,20, 144,1 

1210 

DATA 

12,141,1, 128, 173,21 , 20 


73,33 


0,41 


1470 

DATA 

£08,41,15,141,10,128,1 

1220 

DATA 

12B , 20B ,31,173,141,2,4 


73 , 27 


i,i 


1480 

DATA 

212,41,15,205.10.128,2 

1230 

DATA 

240,51,163, 132,141,15, 


40 , 230 


20B 

■ 

1490 

DATA 

157, 40, 238, 173,27,212, 

1240 

DATA 

173.0,208, 141,14,206,1 


40 1 4 



73,21 


1500 

DATA 

166,254,208,11 , 173,27, 

1250 

DATA 

206,9,128, 141,21 ,20B, 1 


212 



69 , 33 


1510 

DATA 

48,4,169,253,208,2, 169 

1260 

DATA 

141 , 11 , 212, 173,15,208 , 


,255 



73 , 255 

1520 

DATA 

157,249,7,96,-1 

1270 

DATA 

10, 141 ,8,212, 206 , 15 r 20 

1530 

REM FINE DATI BLOCCO 2 | 


SS - Commodore Computer Ciub 



GIOCHI 

COMMODORE 64 


Prossimamente 
sui vostri schermi 


di Giancarlo Mariani 



Win ter Gamtfi (Epyx) 


M olii di voi, circa un anno e mezzo 
fa, saranno n masti meravigliati di fronte 
a Sumtner Games (giochi estivi), che la 
Epyx proponeva, appunto, agli inizi del- 
l'estate 1984. 

Questo gioco, è composto da numero- 
se gare olimpiche, da disputarsi contro il 
computer o contro altri avversari, Sum- 
mcr Garnes era (ed à tuttora) notevole 
dal punto di vista grafico, delle animazio- 
ni, per gli effetti sonori, eccetera. Proba- 
bilmente nessuno, dopo averlo visto, 
avrà pensato che si potesse sviluppare 
qualcosa di meglio. 

La Epyx ha riproposto, un anno dopo, 
Summer (James IL che ha lasciato lette- 
ralmente a bocca aperta gran parte degli 
utilizzatori del 064 (ma anche di altri 
computer). 

Questo gioco, infatti, era stato (sem- 
bra impossibile) addirittura migliorato in 
grafica, suoni, velocità, movimenti, ri- 
spetto al primo, ottenendo un prodotto 
eccezionale sotto ogni punto di vista. 


Considerato quindi il (meritato) suc- 
cesso dei due programmi anzidetto, ecco 
che la Epyx suggerisce un nuovo pro- 
gramma che non è (come qualcuno po- 
trebbe malignamente pensare) Surhmcr 
Garnes III, bensì Wiruer Garnes (Giochi 
invernali). 

Il programma, come i precedenti, è 
basato su attività sportive che T si disputa- 
no sulla neve. 

La grafica, i vari effetti e i suoni sono 
addirittura migliorati. 

Dopo aver caricato il programma, vi 
sono le "solite” cerimonie di apertura 
con sottofondo musicale. Stavolta però 
tutto il campo è ricoperto di neve. Dopo 
la presentazione (interrompi bile anche 
prima che giunga a termine) il program- 
ma presenta un menu con sette opzioni 
selezionabili dal joystick posto indiffe- 
rentemente in porta 1 oppure 2. 

Da menu tì possibile: gareggiare in tut- 
ti (o solo in alcuni) sporte, in un gioco 
soltanto, fare pratica in una gara, sceglie- 


Per il Commodore 
64 è stato 
probabilmente 
sviluppato il più 
ampio parco di 
programmi 
esistente per home 
computer, tra cui 
moltissimi giochi. 

Vogliamo 
presentarne due, 
opera di due 
software house 
altrettanto “grandi": 
la Epyx e la Elite. 


re il numero dei joysticks, esaminare t 
record mondiali e rivedere le cerimonie 
di apertura. 

Se l’opzione scelta è una delle prime 
tre, viene chiesto il nome dei giocatori 
(fino a un massimo di otto) c nel caso ve 
ne sia solo uno, questi avrà come antago- 
nista il computer. 

Dopo a ver chiesto il nome, il C64 chie- 
de anche la nazionalità de! giocatore. 
Muovendosi con il joystick ci si deve po- 
sizionare sulla bandiera de! Paese desi- 
derato (m tutto sono 18„ Italia compresa) 
e premere il pulsante in modo da ascolta- 
re Virino nazionale del Paese scelto. 

Dopo aver introdotto il nome e la na- 
zionalità dei vari giocatori ed aver dato la 
conferma della correttezza dei dati inse- 
riti, un altro menu comprende i giochi 
selezionabili, in tutto sette. 


t - Hot Dog: 

E‘ il salto acrobatico con sci. Dopo 
essere partiti si deve muovere il joystick 


Commodore Computer Club - 89 







GIOCHI 


per cercare di fare acrobazie: spostando 
la leva a destra o a sinistra si faranno 
rispettivamente capriole in avanti o aì- 
ri n dietro. Spostandola in alto o in basso 
si avrà una stabilizzazione dello sciatore, 
mentre con posizioni intermedie si 
avranno altri effetti, quali alzata di gam- 
be, spostamento in avanti/indietro, 
eccetera. 

Il punteggio è determinato dal numero 
e dalla qualità delle acrobazie svolte nel 
breve tempo che si ha a disposizione. 
Bisogna stare attenti a non sbilanciarsi 
troppo, altrimenti si cade e si perdono 
punti. Questi (come per altre gare) ven- 
gono assegnati da otto giudici di gara che 
ne hanno a disposizione dieci ciascuno. 
Vi assicuriamo, però, che è veramente 
difficile ottenere il massimo punteggio. - 

Una splendida musica di sottofondo vi 
accompagna per tutto il gioco che, dota- 
to di grafica e velocità di movimento ec- 
cezionali, conferma l'aita qualità del 
prodotto. 

2 - Biathlon 

E 7 una gara di percorso sugli sci, com- 
posta da quattro fasi, die viene svolta 
i n divido a Smente da ciascun 

partecipante. 

Per prima cosa si dovrà oltrepassare 
un ponte in pianura, sciando il più velo- 
cemente possibile. In seguito vi sarà una 
rilassante discesa, in preparazione della 
salita, lungo la quale dovremo consuma- 
re tutte le nostre forze (ed anche il joy- 




stick...) per superarla. Compiuto per la 
terza volta lo stesso percorso, ci sarà un 
momento di pausa durame il quale, con 
un fucile m continuo movimento, dovre- 
mo colpire cinque bersagli fissi. 

Il tutto si ripete quattro volte prima 
che venga assegnato il punteggio, che 
dipende non solo dal tempo impiegato 
ma anche dal numero di bersagli colpiti. 


3 - Figure Skating 

Tra le gare invernali non poteva certo 
mancare il pattinaggio artistico 

A costo di ripetere cose già dette, si 
sottolinea volentieri il nostro aprezza- 
mento per la grafica e l’animazione della 
ragazza che pattina; semhra divedere un 
cartone animato. 

Anche questo sport, come il preceden- 
te, deve essere giocato individualmente. 
Nel tempo di un minuto, dovremo, atte- 
nendoci alle regole dd pattinaggio arti-, 
stieo (c* ovviamente, muovendo il joy- 
stick) eseguire acrobazie, tra cui giravol- 
te. salti, eccetera senza, ovviamente, 
cadere. 

Il punteggio c dato dalla correttezza 
degli esercizi svolti. 

La gara è accompagnata da un’allegra 
musichetta, che segue il ""ballo'' della 
ragazza. 


4 - Ski jump 

E’ il classico salto dal trampolino. Do- 
po averlo spiccato, in alto a destra com- 


pare un riquadro, indicante 3*assctto del 
giocatore durante il "volo*', che può es- 
sere modificato mediante il joystick, cer- 
cando di raggiungere una corretta posi- 
zione di atterraggio. In caso contrario si 
cadrà rovinosamente sulla neve, perden- 
do la gara. 

La distanza percorsa e lo “stile' de! 
salto, determinano il punteggio, asse- 
gnato a fine gara. 


5 - Speed Skating 

E" una gara di velocità di pattinaggio 
sut ghiaccio, da disputarsi contro il coni- 

m 

poter o contro altri avversari. Per acqui- 
stare velocità è necessario muovere il 
joystick alternativamente a sinistra e a 
destra. 

Lo schermo è diviso in due parti indi- 
pendenti, una per il giocatore e una per 
l’av versano, che indicano la velocità ed i 
metri percorsi. Vince, ovviamente, chi 
arriva prima, e, nel caso di un maggior 
numero di concorrenti, ò valido il tempo 
minore. 

6 - Free Skating 

Questa gara è quasi identica al patti- 
naggio artistico, solo che le acrobazie so- 
no libere, e non risulta necessario atte- 
nersi ad alcuna regola. 



90 - Commodore Computer Club 





GIOCHI 


7 - Bnbslcd 

Classica corsa su bob, ira le più veloci 
del gioco, in cui occorre, guidando il bo- 
lide a destra c a sinistra lungo la pista, 
cercare di non rovesciarsi o di uscire dai 
bordi. Il maggior punteggio si raggiunge 
portando a termine la corsa nel più breve 
tempo possibile. 

1J termine del gioco 

Alla fine delle gare verranno assegna- 
te le medaglie d oro, d’argento e di bron- 
zo e, volendo, verranno registrati su sup- 
porto magnetico i record fatti dai concor- 
renti, che resteranno così disponibili al 
successivo caricamento del gioco. 



Frank Brtinòs boxi ng {Elite) 

Parliamo ora di un altro prodotto fan- 
tastico, anch'csso di genere sportivo. 

La software house è la Elite, famosa 
ira t co nini od ori a ni (e non) per aver svi- 
luppato un parco di favolosi programmi. 

F.B.Boxing fa parte appunto di 
questi. 

Dopo averlo caricato, l’ut Muratore 
verrà deliziato da una bellissima e sofisti- 
cata grafica e da una perfetta esecuzione 
musicale della colonna sonora del film 
“Rocky”, che sicuramente tutti 
conosceranno. 



Rispetto ad altri programmi analoghi 
peT C-64, questo rappresenta il massimo 
per ciò che riguarda grafica, suono, ani- 
mazioni, opzioni, eccetera. 

In seguito alla presentazione, si può 
decidere se vedere un dimostrativo op- 
pure iniziare a giocare, In questo caso si 
affronterà il primo antagonista (in tutto 
sono nove, tra cui un Italiano dall'antipa- 
tico nome di "Ravioli Mafiosi”: gli ame- 
ricani, si sa, affogano nei luoghi 
comuni). 

Data la complessità del movimento, 
questo viene effettuato non con un solo 
joystick, ma addirittura con due contem- 
poraneamente, uno per il movimento ve- 
ro e proprio ed uno per colpire l'avversa- 
rio. I possessori di un solo joystick do- 
vranno pertanto affrettarsi ad acquistar- 
ne un altro (ma vi assicuriamo che ne 
vale la pena). 

Nel tempo di tre minuti è necessario 
mettere ko Fa v versano per tre volte, cer- 


cando, ovviamente t di non farci mettere 
ko a nostra volta. 

Sullo schermo vengono indicate anche 
le energie rimaste a disposizione ed il 
tempo trascorso dalFinìzto della partita. 

Dopo aver messo ko la prima o la se- 
conda volta un avversario, questo si rial- 
za, cercando di colpirci con una terribile 
mossa segreta, difficilissima da evitare, 
che cambia per ogni avversario e che ci fa 
spesso finire al tappeto. 

Se non riusciamo, entro i tre minuti, a 
mettere ko l'avversario o, se peggio, ci 
‘ stende" lui, la partita finisce. 

In caso contrario viene chiesta la paro- 
la d’ordine per caricare il successivo bo- 
xer, Questa è generata casualmente dal 
computer, per cui ogni volta che cari- 
chiamo il gioco sarà necessario battere 
tutti i boxer in sequenza a partire dal 
primo, dato che non è possibile caricarli 
nel Ford ine desiderato. 

Continuando a sconfiggere avversari, 
la gara diventa sempre più difficile, ren- 
dendo quasi impossibile raggiungere il 
nono boxer. 

Alta fine viene dato il punteggio totale 
di tutti gli avversari sconfitti. 

Uno dei maggiori pregi di questo gioco 
è l’alta velocità c realismo di gioco, para- 
gonabile agli analoghi giochi da bar. 

Sarebbe stato meglio se ci fosse stata la 
possibilità di scegliere l’avversario con 
cui iniziare ma. anche così, il divertimen- 
to è assicurato. 



I lettori ohe intendono colla- 
borare sono pregati di tele- 
fonare nel pomeriggi di Mar- 
tedì e Venerdì di ogni setti- 
mana (Tel. 02/8467346} allo 
scopo di valutare, pur se 
sommariamente, il valore 
dei propri programmi. Per- 
tanto non inviate nastri o di- 
schi o dattiloscritti, se non 
esplicitamente richiesti! 
Eviterete perdite di tempo 
(e di denaro). 


Commodore Computer Club - 91 






GIOCHI 

COMMODORE 16 


Due 

games 

dalla 

Mastertronic 


Non è vero che il Commodore 16 
viene trascurato 

dalle case di software. 

Questi due giochi, 

apparsi di recente sul mercato, 
lo dimostrano. 


Tutti frutti 

Digitando RUN, dopo un pre- 
caricamento di 71 giri di nastro, compare 
Lina simpatica videafa per alcuni secondi. 
In seguito il caricamento prosegue fino 
alla fine (totale: ben 168 giri). 

Il gioco parte automaticamente ac- 
compagnato da una simpatica musichet- 
ta che sfrutta completamente le capacità 
sonore del computer. Se non sì preme il 
tasto Pire del joystick vengono visualiz- 
zate Funa dopo l'altra le sei schermate 
che è possibile incontrare durante H gio- 
co, II numero di cinque vite a disposilo- 
ne non sempre è sufficiente, specie le 
prime volte, a percorrere gli intricati la- 
birinti lungo i quali dovete catturare ci- 
liegie, evitando di farvi precipitare ad- 
dosso enormi fragole. 

Nella prima schermata è sufficiente 
catturare tutte le ciliegie, evitando scon- 
tri con omini (in numero di cinque) che 
percorrono casualmente il vostro stesso 
percorso. 

Catturata l'ultima ciliegia, si passa au- 
tomaticamente al secondo schermo nel 
quale, dopo aver catturato le cilìgic raffi- 
gurate, potete sparare, coi tasto Pire, 
una pallina r He percorre il labirinto rim- 
balzando con grande realismo lungo i 
bordi. E’ necessario colpire, col la palli- 
na, i cinque omini che, più agguerriti che 
mai, non si stancano di inseguirvi. 

Passando agli schermi successivi il gio- 
co si arricchisce di nuove regole: racco 
gliere ciliegie, spingere massi contro gli 
omini che vi inseguono, evitare di esser 
raggiunti. 


Tutte le volte che il game termina, 
compare nuovamente la videata iniziale, 
il tempo impiegato dall’ultimo giocatore 
per condurre a termine la partita e gli 
ultimi otto punteggi più elevati. 

Uno svantaggio è costituito dal fatto 
che è necessario il joystick per giocare. 

Ci siamo però accorti che premedo il 
tasto F3 si dà inizio al gioco c, in seguito, 
si sparano le palline. Premendo il tasto 
Return Pomino si sposta in basso, col 
tasto di Lira sterlina (posta tra “=** e 
Shìft), a sinistra, coi tasto "4” a destra, e 
col tasto Ins/del in alto. 



Rockman 

D opo un pre-earicamemo dì 17 giri, il 
programma viene interamente letto in 
140 giri. In questo giocò non solo è possi- 
bile servisri del joystick e della tastiera. 



ma è addirittura consentito scegliere i 
tasti da premere per guidare il nostro 
eroe lungo i labirinti del game. 

Questo consiste nel catturare monete, 
diamanti ed altri oggetti preziosi dissemi- 
nati lungo i numerosi labirinti. Catturan- 
doli, però, si fanno cadere oggetti posti al 
di sopra di questi ed ù quindi necessario 
esser lesti nelLal lontanarsi. Anche in 
questo caso alcuni fantasmi tentano di 
impedirvi il proseguimento del gioco. 

Da segnalare la musica che vi accom- 
pagna lungo tutto il gioco e alcuni effetti 
di animazione decisamente simpatici. 

Nonostante ilC-16, come è noto, non 
abbia la possibilità di generare sprite, 
questo gioco dimostra che ricorrendo ai 
caratteri programmabili è possibile vi- 
sualizzare animazioni sufficientemente 
rapide ed originali. E’ inutile dire, però, 
che è d’obbligo ricorrere alla tecnica del 
linguaggio macchina. 


92 - Commodore Computer Club 





L’UTILE 


PROVATI PER VOI 


£fcfi DHk& Cesene Laitfer * 
Tbouyt * A^firwrtfrtt Kit i 

Ct^trc rrk i Smerla» ■+ 

MkHac - cade flflunitor * 

Othar LRiUtitt 


di Alessandro de Simone 


A. n commercio sono presenti numerosi pro- 
grammi in grado di svolgere funzioni non pre- 
viste dai costruttori dei computer, Tutti, pe- 
rù, devono esse scaricati da nastro o disco pri- 
ma di servirsi delle opportunità che offrono. 
Non sempre si ha la pazienza di effettuare tale 
procedura, un po + per pignzia, un po' perchè, 
nel caso sia necessario spegnere la macchina 
bisognerebbe ricominciare tutto daccapo. 

Si apprezzano volentieri, periamo, cartuc- 
ce da inserire sul retro del C64 che entrano 
immediatamente in funzione non appena si 
accende l'apparecchio. 

Ne abbiamo provata una (cd inserito per- 
manentemente sulle nostre macchine...) ed 
esattamente la TURBO 50 distribuita dalla 
Mastertronic (Viale Aguggiari, 63/ A - 21100 
Varese - tei. 0332/238898). 

Questa cartuccia non occupa memoria 
RAM riservata a] Basic, che dispone, quindi, 
dei soliti 38911 bytes liberi. Utilizza, perù, 
una parte delta RAM posizionata a partire 
dall' indirizzo 49 152, Per caricare \ programmi 
in Linguaggio Macchina (L.M.) che occupano 
tali locazioni è quindi necessario disabilitare 
la cartuccia via software senza /cioè, prender- 
si il disturbo di staccarla fisicamente dal retro. 
Con il pulsarne dì Reset presente sulla stessa 
cartuccia, infatti, il Commodore 64 si com- 
porta come se la cartridge fosse disinserita, 

Ma bando ai preamboli, e passiamo alla 
descrizione, pur se sommaria per ragioni di 
spazio, delle nuove potenzialità offerte da 
TURBO 50. 


Come è bello 
accendere il C-64 
ed avere 
immediatamente 
disponibili tanti 
comandi BASIC in 
più, oltre alla 


HEXN 

Traduce in esadecimalc il numero decimale 


KEYN 

Abilita o disabilita le funzioni preprogram 
mate coi tasti funzione fl-fB. 


OLD 

Fa “resuscitare" il programma Basic can 
celiato accidentalmente col comando NEW 
oppure QUIT o RESET (vedi dopo). 


FL1ST 

Visualizza pagina dopo pagina il program- 
ma Basic in memoria in modo tale, cioè, da 
bloccare ogni 25 righe la funzione di scTolling 
che farebbe altrimenti uscire dallo schermo le 
righe del listato. 


aumentare la 
velocità di 
caricamento da 
nastro o disco. . . 


Comandi Basic aggiuntivi 


AUTO N,M 

Genera automaticamente la numerazione 
di linee di un programma a partire da N con 
incremento M, 


OUIT 

Elimina, via software, la cartuccia ed il C- 
64 "pensa" che non ci sia più. Se il comando è 
stato dato per errore, la si può attivare mio va- 
ri- ^ t -l ji mente col comando SYS 49179, 

Ricerca e visualizza tutte le righe del pro- 

anima Basic in cui è presente l’elemento RENUM N,M 

reato ELEMENT (istruzione, comando. Renumera t! programma Basic a partire da 
inga* variabile, ecc.). N con intervallo M. 


DEC N 

Traduce il numero esadecimale N in 
decimale. 


DEL N-M 

Cancella le linee Bàsic da N a M incluse 


HELP 

In caso di errore visualizza l’esatta istruzio- 
ne Basic che ha generato Terrore stesso 


REP 

Abilita la funzione di autorepeat su tutti i 

tatti. 


FINO ELEMENT 


Commodore Computer Club - 93 


L’UTILE 


RESET 

Cane e iltì totalmente ciò che è in memoria, 
debilita la cartuccia e presenta GM come se 
questo fosse staio appena accesso. 

SET N M 

Colora i9 bordo col colore N ed il tondo con 
M. 

SHOW 

Visualizza su schermo tutti j comandi di- 
sponibili con lia cartuccia. 

TRACE N 

Evidenzia su schermo, durante f 'elabora- 
zione di un programma, le linee che vengono 
a mano a mano eseguite. 

Comandi per file su cassetta 

COMP 

Verifica la corretta registrazione di un pro- 
gramma salvato eoi comando FLIT (vedi 
dopo). 

GFIT "NOME -1 

Carica 10 volte più velocemente un pro- 
gramma registrato precedentemente col co- 
mando PUT. 

MERCE 

Esegue una fusione tra due programmi, 

PUT 4 ‘NOME * 1 

Registra il programma Basic con una velo- 
cità 10 volte più elevata del consueto 

Comandi per file» su disco 

DLGAD“NOME” 

Carica ad una velocità 5 volte superiore al 
consueto un programma Basic. 

DMERGE “NOME " 

Fonde il programma NOME presente sul 
dischetto col programma presente in 
memoria, 

DSAVE“NOME” 

Registra ad una maggiore velocità il pro- 
gramma presente in memoria, 

DVERIFVNOME" 

Verifica il programma appena regì-strato, 

1 (freccia in alto) 

Visualizza la directory senza cancellare il 
programma Basic presente in memoria. 

(punto) 

Indica quale errore è stato commesso nel 
caso il drive lampeggi 


N S R.V-U 

Questi comandi, preceduti dal carattere di 
punto {.)* eseguono, rispettivamente, la for- 
mattazione di un disco; la cancellazione di un 
file; il cambio di un nome; il valutale; la elisa- 
bili t azióne del drive. 

/ "NOME" 

Digitando il nome dei programma, prece- 
duto dal carattere di barra (/), EJ programma 
viene caricato a gran velocità a partire dalla 
locazione in cui era presente al momento del- 
la registrazione. Corrisponde* cioè, al coman- 
do; LOAD +, NQME\!U 

FLOPPY N „ 

Assegna d numero 8 oppure 9 al floppy 
collegato in quel momento col C-64,“ 

Comandi per copiare fUes 

cofy m nome , \n.m 

Copta il file “NOME” (lungo fino ad un 
massimo di 186 blocchi!) dalla periferica N 
(re giratore t2 p drivctS) alla periferica M, E' 
ovvio che il caricamento può avvenire anche 
ad alta velocità e che il programma effettua 
una pausa per consentire T ventua le cambio 
del nastro e/o disco. 

RECOPY 

Consente di effettuare un’altra copia del 
programma o file appena compiuta col co- 
mando COPY. 

Comandi per l’uso 
deir interfaccia Centronics 

CENT A f tì 

Attiva o disabilita i 1 interfaccia Centronics e 
la predispone, o meno* in modo Listing 
Mode. 

COLUMN Q 

Determina il numero Q di caratteri da 
stampare per ciascuna riga. 

Allineamento della testina 
del registratore 

Nella confezione è presente una speciale 
cassetta che, inserita nel registratore ed utiliz- 
zata col comando GET* consente la perfetta 
regolazione dell 'azimut h grazie alla visualiz- 
zazione di strisce colorate che appaiono sullo 
schermo del TV. 

Comandi monitor 

Un programma per la gestione del Linguag- 
gio Macchina è presente nella cartuccia e la 
sua attivazione è possibile digitando il coman- 
do MON. 


La notevole particolarità risiede nel fatto 
che questo programma, lungo 4Kbyies*£ rilu- 
cabìle nel senso che £ possibile allocarlo nella 
parte dì memoria RAM che più aggrada. Chi 
lavora in L.M, sa bene i notevoli limiti imposti 
da altri programmi similari che* pur se validis- 
simi, occupano una ben precisa parte di me- 
moria RAM impedendo, di fatto, di allocarvi 
programmi particolari. Con TURBO 50. al 
contrario, potetele scrivere listati in L,M. in 
qualsiasi parte della memoria RAM, 

1 comandi disponibili, sui quali saremo an- 
cora più succinti, sono; 

MEMTOP Fissa il punto piu alto di memoria 
utilizzabile. 

j» 

ASSEMBLE Consente di scrivere il program- 
ma in Assembler, 

RREAKPQTNT Consente di inserire alflin- 

terno di un programma un punto di Break 

■# 

COMPARE MEMORY Confronta tra loro 
due segmenti di memoria, 

DISASSEMBLE Disassembla una zona di 
memoria. 

EDITOR IN SCREEN Esamina una zona di 
memoria. 

FILL MEMORY Riempe con un numero 
esadecimale una porzione di memoria. 

GO Corrisponde al RUM 

HUNT MEMORY Ricerca una sequenza di 
bytes a IL interno di una zona di memoria. 

INTERROGATE MEMORY Visualizza 
una zona a blocchi di otto byte per rigo con la 
corrispondente “traduzione" ASCII. 

NEW LOC ATER riloca gli indirizzi assoluti 
di un programma L.M. Analogamente la fun- 
zione ZIP riloca tabelle. 

Altre funzioni e comandi, di facile interpro 
fazione, sono; Jump, Subroutine, Load, Prin- 
ter Output, Re giste? Display, Save, Transfer 
Memory, Video Screen, Exit, 

Sono inoltre disponibili i comodi comandi 
per effettate somme e sottrazioni in esaderi- 
male e conversioni dì numeri. 

Conclusioni 

Sperando dì non aver dimenticato nessuna 
delle potenzialità offerte da TURBO 50* con- 
cludiamo asserendo che il prezzo (L* 125.000} 
può sembrare non del tutto contenuto. Consi- 
derando* però, i vantaggi offerti dalla cartuc- 
cia* noi pensiamo che questa si ripaghi da tè* + . 


94 - Commodore Computer Club 


SCAMBIATEVI LE LISTE 


0 ** 


Marcii Scori» - Via S Francesco LI - 20091 
Presso (MI) - tei. 02/6100061. 

Alessandro D'Amore - Via Umberto 16 - 
73048 Nardo (LE). 

Andrea Simon! - Via Isonzo 16 - Castelfranco 
E, -teL 059/937205 

Francesco Calumano - Via C . Matteotti C. le 5 
35 - 92013 Menti - tei. 0925/71309. 

Giovanni P&MjuarieUo - Via Forre 8, Susanna 
129 B - 72022 Ladano (BR) ■ tei. 729291. 

Marco Barili * Via Piave 4 -26026 Pizzighetto- 
ne (CR) ■ tei. 0372/743052. 

Pietro Piilier ■ Via Vico TI Fontcp 1 ] intano 12 - 
74024 M and una - tei. 099/6791211. 

Ma vi mi ti ano De Martis - Via Delfico 24/3 - 
20155 Milano - tei. 02/3493615. 

ri 

Niccolo Veccia redi - P.zza Vi nei 29 - 00139 
Roma - tei. 06/8109780 

Mìrco /anca - Via Enrico Fermi 3 46035 

O stiglia (MN) - tei. 0386/31657. 

Romano Piacentini - Via Voi dei Sangue 171/ 
A - 20099 Sesto S. Giovanni (MI) - td 02/ 
2428447. 


Mario Gatti - Via Schema 10 - 25(4(1 elusane 
disco (BS) - te]. 030/989286. 

Piero Graziarli - Via Delle Torri 72 - 50019 
Sesto Fiorentino (FI). 

Marco e Giuliano Quaranta - Via Malta 9 - 
80055 Punici (NA) - tei. 081/4*4584. 

Raffele Rondóni - Via Del Baby ino 151 - 
00187 Roma Td. 06/6798610. 

Walter Fktiesr - Via Borgo vecchio 12 - 30027 
S. Doni di Piave (VE) 

Andrea Magri* - Via Daniele Manin 112 - 
31015 Conegliano (TS) - tei. 0438/63313. 

Giuseppe Chiocci - Via S avelli della Porta 3 - 
06024 Gubbio (PG) - tei. 075/9271549. 

Gaetano Di Bello - Via Luiei Catenno 83 
81036 S Cipriano D'Averi (CE) - td. 081/ 
8921268. 

Massimo Pedinali - Via Gondim 44 - 44100 
Ferrara ■ id 0532/903354. 

Stefano Sgudó - Via Don Mi ozoni 2/ A - 54033 
Carrara (MS) - Tel. 0585/72127. 

Franco Silvestro - P trA S„ Martino 9 - 40126 
Bologna - lei. 227074, 


Ferdinando Rei-tapini - Vi u Cunei 14 - 40033 

Castelmaggiore (BO) - tei 05 1/7 12580. 

Salvatore Cerehione - Via Ribera 5 - 80128 
Napoli - tei. 08 1/649108 

Lorenzo De Angdis - Via R ratei anese 8 - 
0MS9 Totfa - Te]. 0766/92615. 

i 

Edoardo Tratta - Via Lazio 3 80016 ma reno 
(NA). + 

David Malizia - Via L.T Inventori 60 - HO 1.4^5 
Roma ■ tei. 55613/9. 

Antonio Villani - P.zza Ischia 2 - 00141 Roma - 
tei. 06/8174100. 

Stefano Stami - Via C. Max 15 - 43100 Pii rni.i - 
tei 0521/44354. 

Sandro Matali - Via XIV Luglio 36A 50019 
Sesto F no (FI) - tei. 055/4481640. 

Mario Berardn - Via Vittorio Emanuele 265 - 
12042 tìra (CN) - lei 0172/421703 

l>emetrio Bc Lardimi - Via Simone Girini 32 
00133 Roma * tei. 06/2692609. 

Giovanni Remai vili - Via Lumino 31 37L39 

Verona tei 582719. 


UNA MOTO CAGfVA 
UN PERSONAL COMPUTER 

COMMODORE 
UN MONITOR 
0 UNA STAMPANTE 
COMMODORE 

-L 

PER IL TUO COMPUTER 

Centinaia di abbonarne ni i alla tua rivista Systems 
preferita. 

Decine di programmi su cassetta e libri delta Biblio- 
teca Informatica Systems. 

Aut. Min. Cono 


Incolla qui i bollini 

dell 1 0 P FRAZIONE FEDELTÀ 1 SYSTEMS 




Prem:a anche il tuo ed col ante- segna tondo il suo 

n om ertati vo tL . 

edicola dì via . 

r ! ■ i p ■ ■ i r 4 i 1 L f « 1 r n i ì r e n p il » r b. ì i i ■ j . j . . , , , 

CAP '.. .....città 

Si G No G 

Trova sempre la tua rivista Systems preferita? 

Si □ No □ 

Le riviste Systems sono sempre bene esposto? 


Ritaglia e spedisci a; Systems Editoriale S r.L V.le Famagosta 75 20142 MILANO 


Commodore Computer Club - 95 




I 


Gianluca Riccardi/Costantìno M astratto . - 

Via P.D. Passionala 3B - 03024 Ceprano (Fr) 
Td. 0775/950102 

Bruno Castdnuaeo - Via S. Antonio 3 - 23020 
Montagna in Vaiteli ma (So) - Te). 0342/ 
38023+ 

■ , 

Daniele Peruzzi - Via J. Cook 8 ■ 52 100 Arezzo 

Tei. 0575/911306 

Tu genio Feria - Via P. Cominio 56 00175 
Roma - TeL 06/765535 

Bernadotti Flavio - Via Trento IO 15040 
Montecaste Ilo (Al) 

Fabio Bel Lassai - Via Fili Bandiera 13 - 95100 
Catania -Tel. 415353 

Sebastiano Caramagno -Contrada CipolLazzo 
9601 1 Augusta - TeL 0931/993333 

Erminio - V , le del Lavoro 20 - 87012 
Castravi Ilari (Cs) - Tel. 0981/46393 

Riccardo Donatimi * Via Postumia 22 31055 
Quinto di Treviso -Tel, (*422/20894 

Antonio Conticelo - Via Galli della Mantica 
28 00122 Ostia (Rm) - Tel. 06/5603759 

Michele Cervelli - Via Fiorentina 43 56025 
Pontedera (Pi) - Tel, 0587/56046 

Enzo Landra - Via delle Terme 97 - 95024 
Acireale (Ct) - Tel. 095/608294 

Riccardo Badenghini - Via Pianezza 153 

10151 Torino - Te. 01 1/734940 

Paolo Pagani - Via Guillcnzani 5 - 41100 Mo- 
dena - TeL 059/350964 

5 imo ne Martini - ViaBagìioni 24-06100 Peru- 
gia -Tel. 075/61580 

Oscar Bresciani - Via Veneto 24 - 20031 Cesa- 
no Mademo (Mi) 

Luca Broglierà * Via Comunale 46 - 31046 
Oderzo (Tv) - Tel. 0422/717574 

Loredana Mecca rie! lo - Via Goti 97 - 42019 

Scandiano - Td, 0522/855130 

+ w * 

Claudio Dammkci) - Via Squillate 64 00178 
Roma -Tel. 06/7992123 


(Terardo Marra - Via P. Baratta 91/A - 84091 
Battipaglia (Sa) - Tel. 0828/23130 

Francese» Saracino * Via E. Saracino 25 - 
70032 Bitónto ( Ba) - Td. 617600 

Marco Cavedani - Via G. Pascoli 95 41058 
Vignola (Mo) - Tei 059/771734 

Salvatore Spanrdda - C.so Umberto - 09073 
Guglìera- TeL 0785/39857 

Sandro Garretti - ViaG. Amendola 17- 50053 
Empoli (Fi) - Tel. 0571/78361 

Frabrizio Rizzi - Via Castello 3060B 30122 

Venezia -Td 041/22883 

Marco Mori - Via F. Crispi 13 - 52 100 Arezzo 
Td. 0575/22013 

Primo Velinari - Via della Resistenza 18 - 
48020 La’ diLugo(Ra) 

Ruberto Pillotti - Via Audinot 35 - 40134 Bo- 
logna -TeL 051/421956 

Umberto Morra di Cella - Vìa Gen. Perolti 23 
10091 Alpi guano (To) TeL 011/9677679 

Massimiliano Cucciardi - Via Brecce Bianche 
80 - 6013 1 Ancona - Tel 07 1/862641 

Antonio Santagata - Via VaLbruna 16 3310U 
Udine - Tel. 43456 

Igor Print’ie - V.tc XX Settembre 35 - 34137 
Gorizia - Td, 0481/89200 

Massimo Fortin - Via Rovetta 6 - 20127 Mila- 
no -Tel 285 ms 

Poalo Solaro - P.zza Medaglie cTGnv 13 - 
14100 Asti -Tel. 0141/51973 

i 

Roberto Miehctotb - Via G,R Gaudi 11/23 
16143 Genova 

Maurizio Bel toni - Via Legionari Polonia 33 - 
24100 Bergamo Tel. 035/262083 

Giulio Manni - Via Gallipoli 73 - 73055 Racalc 
(Le) - Td, 0833/982551 

i 

Roberto Facco - Via Varesina 181 22100 

Como - Tei. 031/505896 

tu *i 

And rea Gamanno&si - Via T„ Cortesi 19 - 
50047 Prato (Fi) 


Elisa Leoni - P.zza Giotto 20 52100 Arezzo- 
Tei. 0575/20606 

Eduardo Lampi* - Via Cadorna 21 50129 

Firenze - Tel. 055/494648 

Stefano Sampaolesi - Via A. Moro 15 -63021 
A itiaro dota ( Ap ) Td. 1 3736/97462 

Albano Filiali - Vìa B. Miriam 61 - 63035 
Officia (Ap) - Tei 0736/80144 

Marco Miiesi - Via Dante 55 - 24032 Cdolzio 
corte (Bg) -TeL 0341/645507 

Massimiliann Mattioli - V ia G. Paganelli 10- 
471U0 Forlì - Tel . 0543/5 126 1 

Michele Me le bionda - Via Tagliamene 1 1 Tra- 
versa 6 - 83100 Avellino - Tel. 0825/3809 1 

ri 

P 

Roberto Oberto - Via Discutetti 7 - 10025 Pino 
Torinese (To) - TeL 011/842357 

Roberto Guida - P /za Ernesto Cesato 66 - 
80058 Torre Annunziala - Tel. 081/8616561 

Angelo Germinario - Via F. Fusco 36 - 95100 
Catania - Tel. 095/437234 

Andrea Tranci - Via A. de Gasperì 34 - 52100 
Arezzo - TeL 0575/33540 

Giorgio Franchi - Cso Quintino Sella 87 - 
10132 Torino -TeL 01 1/832875 

Marco Maggi - Via Serbo 8/2 20139 Milano 

Roberta lì inselli /A nd rea Padovani - Via Gort- 
zales 4 - 20139 Milano - Tel. 02/567465/ 
5692965 

Sergio Rivolcttì - Via Tevere 63017 Porto 
San Girogio - Td, 0734/4419 

Marco A rea ri - Via Walter Mattini t4 - 54036 
Massa Carrara (Ms) 

Claudio Luciani - Via J. Gagarin 34 - 63020 
Piane di Falemne 

Corrado Ferrari - Via F.uropa 40 - 20(197 5 . 
Donato Milane*? (Mi) - Td. 02/5274458 

Luigi Buzzi - Via A. Grandi 3 - 12011 Borgo 
S D. - Tel. 0171/751248 

Poalo Rivieccio - Via Moniehelkt 115 - 571(10 
Livorno -Td. 0586/807043 


96 - Commodore Computer Cfub 



INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA 


l 


Q) 

E 

o 

c 

m 

o 

o 


*5 

V 

o 


a. 

< 

o 




o 

z 


Registrate if mio abbonamento annuale a Commodore Computer Club. 




CI Ho versato oggi stesso il canone di L, 35.000 a mezzo c/e postale n s 37952207 intestato 

a: 

Systems Editoriale - V.ie Famagosta. 75 - 20142 Milana 

- ■ ■ ' ' ' . . >'?■: v . r . .< » - : - 

' -y>, ,‘tì 1 -t , -- T? ‘ ■ JijSfJ ‘i. -V Jt* * il :.»*«•. 1 _ r ìétv.' k t ' ' . , - 

□ Ho inviato oggi stesso assegno bancario ri,..,. „ .... 

per l'importo dì L. 35.000 intestato a Systems Editoriale 
Si prega di scrivere il proprio nome e l'indirizzo completo ih modo chiaro e leggibile. Inviare 
I a fotoco pia d el boi I etti no di c/è postaie. 


r LÌ V -' 




L * 


• i * 


Considerando che j numeri 1 . 2 e 7 sono esauriti, vogliate inviarmi i numeri arretrati 

al prezzo di L, 5.000 cadauno per richieste fino a 4 numeri, o di L. 4.000 cadauno per 

richieste oltre ; 4 numeri arretrati, e perciò per un totale di L, Sono a conoscenza che 

ì fascìoli suddetti non saranno inviati in contrassegno é, pertanto, ho provveduto oggi stesso 

a versare il canone di U„ ; a mezzo c/c postale n. 37952207 Intestato a; 

Systems Editoriale - V.le Famagosta, 75 - 20142 Milano 


A Vi 






msm 




STATISTICA 


□ 


Non posseggo un computer 

Posseggo un C64 „■ 

•Posseggo un VfC 20 

Posseggo un Commodore Pius 14 . 
Posseggo un Commodore Plus 16 . 
Posseggo un registratore dedicato 

Posseggo un drive 1541 

Posseggo una stampante 

Posseggo un monitor 




hi!»!'* MutrH + iiifHtrlì 


otiiH l'fciirMii'irrii 


“■HtM* » + + - - - à - «H 4 r HM 4 i miìii 


r > I * I « ■ i 4 I É il J I. I i 4 - % 




t ¥ * ri 9 r a ■ ■ a * r i n 


SiO ... no Ci 

v< V fi*. - ( • .* * 1 

si □ no □ 

sin ... noC 
siri ... noG 
sì □ ... noQ 
si D ... no □ 
si □ ... no □ 
s\C ... no D 


V 1 


r- f ili’ - ■. ,1 1 - p _ 

COLLABORAZIONE 

A titolo di pròva vi invio un articolo e là cassetta,.,,.,..:.,,.,-. .....disco. 

col programma che intendo proporre per la pubblicazione dì cui garantisco l'originalità. 




OOMANDA/RISPOSTA 


‘ •V;'-' ? ‘ + •• 

t . - . ' v ■ - -, 

i - ■ {% m * - . «• ■* -4 S ' - ; 

B a * * 1 8 ■* + »• “ # 4 ^ » j 4 4 r « „ > k k i ^ , trrava.aa*i>Ba*rrB'iiY'aa>|'rcBai.aBa ras 

■ 


CU 

E 

o 

z 


RI 


O 

£ 

O 

"3 


M* I m *M r«é» 4 l • * 4 ¥ - 1 • fraa r a a « 4 


i » a a | aa •> • a a « « m 4 *«•<+«* k r * *• 




• - f- i ■ • •'Ai - m l . - ' Z * ' r 

1 ■ r . 1 ■« ” «• r 

■ ** M ' * ^t^4».ii»..if , aailM 




' J i ì T ■ • i- i r • i a ■ a a B B ai a a a a ■ r i ■ fa ■ » m » a 4 f i a a a a. i a a a J--m a a a i.tn aa.^k. 44 


■ 4 i ■ I 1 ■ li a 


- J | ■ ■ 4 # | ■ f ■ ■ ■ 4 B a **. B ■ J f- I 




■ 

• * t Mi - - 1 1 aria iiaai rasa mi 1 • a a 1 1.44 a a a a a a ■ a t a. «aa 


- 4 - 4 fc * -M * - • + t - Imììm t cria! a a + r a 


B a •*«••* -* ♦ B 




1 | M 4 M • f M « HtìtHÌ-mbì 


■M I »■*** HiM.MiHi . a -i i - B - a I B a a 



RICHIESTA ARGOMENTI 


più spesso dei seguenti 


argomenti 


GIUDI 


0 ai programmi che indico di seguito; 


l *_■ • -t- * fc # • « T k I 4 fe *> fi-* » * HMI 4 


CERCO/OFFRO CONSULENZA 


20142 Milano 



INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA 






PRESENTA 







-n;xn ' /X y± I F-i ':_. , - 4L' XV V ; r f J > — ; M i • 

V tf/t ^ ‘ J A J5- // . - /, 4. ' ■ 


Jd 




■''vS. / ^V' / " 


£*» - l^vlAiS te* 


4 ; >V7 

\S 


Lire 


\ 2 .<m sFr.W- 50 


-16*-- DMi9,5« ! 

O 3 1 IS 1 


l *ve T H<ri“ d “ '/■•; 
f«59m>P fcWon * 


Composer 

Percussions 

International 

parade 


Arcadia 
Bach 
Basi io n è 
Raldan Bembo 
Band Aid 
Beatles 
Beethoven 
Dalla 

Dorali Durari 
Genesi s 
King 
List? 

Madonna 
Mina 


Mozart 
Paoli 

Pìiik Flovd 
Polire 
Pooh 
Righeira 
Rossi 
Simon & Garfiinkel 
Spandali Haliti 
Stranss 
L T sa for Africa 
Vivaldi 
Zeppelin 


imM 

. M / 


t, 

E*' 


hS !■> 

‘S,| j— 

r v fvi\\ 7-§> 

■ AX ^-|l^nV 

"iWì- 

"aCiSft,'//. 


,||v _ ,^> 

l ^ /; , J_7r 1,=— rp /f 

5 J L_ vV x;'.v-: U-7 J gyff ^ M L tV u?, y i j Ut vS ^ # Wj 1 1 £\\ % 


mwm% 

=as$>%s 

^ ’ 1 W vs -S 1 & -h't J ^C\V :i t sS I m y I f > :' U- 


C ™- ; .M 

'“'- ■ /J *